在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用Python和pandas來處理json數(shù)據(jù)

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-11-01 10:59 ? 次閱讀

在實(shí)際工作中,尤其是web數(shù)據(jù)的傳輸,我們經(jīng)常會遇到j(luò)son數(shù)據(jù)。它不像常見的文本數(shù)據(jù)、數(shù)值數(shù)據(jù)那樣友好,而且它和Python中的字典類型數(shù)據(jù)又很相像,給很多人造成了困擾。

本文結(jié)合具體案例詳細(xì)介紹了如何利用Python和pandas(Python的第三方庫)來處理json數(shù)據(jù),主要內(nèi)容包含:

  • json數(shù)據(jù)簡介
  • 常用json數(shù)據(jù)轉(zhuǎn)化網(wǎng)站
  • json數(shù)據(jù)和Python數(shù)據(jù)的轉(zhuǎn)化
  • pandas處理json數(shù)據(jù)

1. JSON 簡單介紹

1.1 什么是json數(shù)據(jù)

首先,我們看一段來自維基百科對json的解釋:

JSONJavaScript Object Notation,JavaScript對象表示法)是一種由道格拉斯·克羅克福特構(gòu)想和設(shè)計、輕量級的資料交換語言,該語言以易于讓人閱讀的文字為基礎(chǔ),用來傳輸由屬性值或者序列性的值組成的數(shù)據(jù)對象。

JSON 數(shù)據(jù)格式與語言無關(guān)。即便它源自JavaScript,但目前很多編程語言都支持 JSON 格式數(shù)據(jù)的生成和解析。文件擴(kuò)展名是 .json

通過上面的官方介紹,我們總結(jié)3點(diǎn):

  • JSON是一種文本(資料)語言,超輕量級的數(shù)據(jù)交換格式
  • JSON數(shù)據(jù)容易閱讀,易讀性強(qiáng)
  • 源自JavaScript,其他語言可解析JSON數(shù)據(jù)

1.2 json數(shù)據(jù)類型

JSON實(shí)際上是JavaScript的一個子集,JSON語言中僅有的6種數(shù)據(jù)類型或者它們之間的任意組合:

  • number:和JavaScript中的number一致
  • boolean:JavaScript中的true或者false
  • string:JavaScript中的string
  • null:JavaScript中的null
  • array:JavaScript的表示方式:[]
  • object:JavaScript的{…}表示方式

1.3 兩點(diǎn)規(guī)定

1、JSON語言中規(guī)定了字符集必須是UTF-8

2、為了統(tǒng)一解析,JSON的字符串規(guī)定必須是雙引號""

2. 常用json數(shù)據(jù)轉(zhuǎn)化網(wǎng)站

1、json.cn:https://www.json.cn/

2、json菜鳥工具:https://c.runoob.com/front-end/53

3、sojson:https://www.sojson.com/,非常全的json處理網(wǎng)站

4、kjson:https://www.kjson.com/

5、編程獅-json檢驗(yàn)工具:https://www.w3cschool.cn/tools/index?name=jsoncheck

6、JSONViewer:http://jsonviewer.stack.hu/,用于檢測Json格式是否正確的一個在線應(yīng)用工具

3. JSON 和 Dict 類型轉(zhuǎn)化

本小節(jié)主要講解的json類型數(shù)據(jù)和Python類型的轉(zhuǎn)化。

json對象和Python字典的轉(zhuǎn)化主要使用的是內(nèi)置json包,下面詳細(xì)介紹該包的使用。詳細(xì)的學(xué)習(xí)資料見官網(wǎng):https://docs.python.org/3/library/json.html

首先使用的時候直接導(dǎo)入該包:

import json

json包中存在4中方法用來進(jìn)行和Python內(nèi)置數(shù)據(jù)類型的轉(zhuǎn)化:

方法作用
json.dumps()將python對象編碼成Json字符串:字典到j(luò)son
json.loads()將Json字符串解碼成python對象:json到字典
json.dump()將python中的對象轉(zhuǎn)化成json儲存到文件中
json.load()將文件中的json的格式轉(zhuǎn)化成python對象提取出來

筆記:兩個和load相關(guān)的方法只是多了一步和文件相關(guān)的操作。

json.dumps

和dump相關(guān)的兩個函數(shù)是將Python數(shù)據(jù)類型轉(zhuǎn)成json類型,轉(zhuǎn)化對照表如下:

PythonJSON
dictobject
list, tuplearray
str, unicodestring
int, long, floatnumber
Truetrue
Falsefalse
Nonenull

json.dumps方法的作用是將Python字典類型的數(shù)據(jù)轉(zhuǎn)成json格式的數(shù)據(jù),具體的參數(shù)如下:

json.dumps(obj,   # 待轉(zhuǎn)化的對象
           skipkeys=False,  # 默認(rèn)值是False,若dict的keys內(nèi)的數(shù)據(jù)不是python的基本類型(str,unicode,int,long,float,bool,None),設(shè)置為False時,就會報TypeError的錯誤。此時設(shè)置成True,則會跳過這類key 
           ensure_ascii=True,  # 默認(rèn)是ASCII碼,若設(shè)置成False,則可以輸出中文
           check_circular=True,  # 若為False,跳過對容器類型的循環(huán)引用檢查
           allow_nan=True,  # 若allow_nan為假,則ValueError將序列化超出范圍的浮點(diǎn)值(nan、inf、-inf),嚴(yán)格遵守JSON規(guī)范,而不是使用JavaScript等價值(nanInfinity、-Infinity)
           cls=None, 
           indent=None, # 參數(shù)根據(jù)格式縮進(jìn)顯示,表示縮進(jìn)幾個空格
           separators=None,   # 指定分隔符;包含不同dict項(xiàng)之間的分隔符和key與value之間的分隔符;同時去掉`: `
           encoding="utf-8",  # 編碼
           default=None, # 默認(rèn)是一個函數(shù),應(yīng)該返回可序列化的obj版本或者引發(fā)類型錯誤;默認(rèn)值是只引發(fā)類型錯誤
           sort_keys=False,  # 若為False,則字典的鍵不排序;設(shè)置成True,按照字典排序(a到z) 
           **kw)

通過例子來解釋上面幾個常見參數(shù)的作用

1、當(dāng)我們的Python類型數(shù)據(jù)中存在中文

information1 = {
    'name': '小明',
    'age': 18,
    'address': 'shenzhen'
}
# 字典轉(zhuǎn)成json數(shù)據(jù)
information2 = json.dumps(information1)

print(type(information1))
print(type(information2))
print(information2)

圖片

加上ensure_ascii=False參數(shù)即可顯示中文:

# 字典轉(zhuǎn)成json數(shù)據(jù)
information3 = json.dumps(information1,ensure_ascii=False)

圖片

??通過結(jié)果我們發(fā)現(xiàn): json數(shù)據(jù)中全部變成了雙引號,原來的字典類型數(shù)據(jù)中使用的是單引號 ,再看一個關(guān)于引號變化的例子:

>> > import json
 >> > print(json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4))  # python中的鍵是字符串,用單引號

# 結(jié)果顯示
{
    "4": 5,  # 變成雙引號
    "6": 7
}

2、對json數(shù)據(jù)通過縮進(jìn)符美觀輸出,使用indent參數(shù)

information4 = {
    'name': '小明',
    'age': 18,
    'skills': 'python',
    'english': 'CET6',
    'major': '會計',
    'address': '深圳'
}

information5 = json.dumps(information4, ensure_ascii=False)   # 不縮進(jìn)
information6 = json.dumps(information4, ensure_ascii=False, indent=2)  # 縮進(jìn)2個空格  
information7 = json.dumps(information4, ensure_ascii=False, indent=5)  # 縮進(jìn)5個空格


print(information5)
print(information6)
print(information7)

圖片

3、對Python數(shù)據(jù)類型中鍵進(jìn)行排序輸出

information4 = {
    'name': '小明',
    'age': 18,
    'skills': 'python',
    'english': 'CET6',
    'major': '會計',
    'address': '深圳'
}

information8 = json.dumps(information4, ensure_ascii=False, indent=2)  # 
information9 = json.dumps(information4, ensure_ascii=False, indent=2,sort_keys=True)  #  鍵的排序設(shè)置成True 

print(information8)
print(information9)

圖片

通過sort_keys=True的設(shè)置,可以觀察到輸出的結(jié)果進(jìn)行了首寫字母的排序;當(dāng)首寫字母相同,按照第二個字母再進(jìn)行排序。

4、輸出分隔符的控制

使用separators參數(shù)來設(shè)置不同的輸出分隔符;不同的dic元素之間默認(rèn)是,鍵值對之間默認(rèn)是:

information1 = {
    'name': '小明',
    'age': 18,
    'address': 'shenzhen'
}

information2 = json.dumps(information1,ensure_ascii=False)
information10 = json.dumps(information1,ensure_ascii=False,separators=('+','@'))  # 改變分隔符

print(information2)  # 默認(rèn)連接符
print(information10)

圖片

json.dump

json.dump功能和json.dumps類似,只是需要將數(shù)據(jù)存入到文件中,二者參數(shù)相同

我們嘗試將下面的個人信息寫入到文件中

information = {
    'name': '小明',
    'age': 18,
    'skills': 'python',
    'english': 'CET6',
    'major': '會計',
    'address': '深圳'
}

1、如果不使用indent參數(shù),全部信息顯示為一行

# 使用json.dump;json數(shù)據(jù)一定是雙引號

with open("information_1_to_json.json", "w", encoding='utf-8') as f:
    # json.dump(dic_, f) # 全部寫入一行數(shù)據(jù),不換行
    json.dump(information,   # 待寫入數(shù)據(jù)
              f, # File對象
              sort_keys=True,  # 鍵的排序
              ensure_ascii=False)  # 顯示中文

看看實(shí)際的保存效果:

圖片

加入indent參數(shù),會顯示成多行數(shù)據(jù):

with open("information_2_to_json.json", "w", encoding='utf-8') as f:
    json.dump(information, 
              f, 
              indent=2,  # 空格縮進(jìn)符,寫入多行
              sort_keys=True, 
              ensure_ascii=False)

圖片

json.loads

load相關(guān)的兩個函數(shù)是將json轉(zhuǎn)成Python數(shù)據(jù)類型,轉(zhuǎn)化對照表如下:

JSONPython
objectdict
arraylist
stringunicode
number (int)int, long
number (real)float
trueTrue
falseFalse
nullNone

json.loads的作用是將json格式的數(shù)據(jù)轉(zhuǎn)成Python字典類型的數(shù)據(jù)。

information1 = {
    'name': '小明',
    'age': 18,
    'address': 'shenzhen'
}
# 字典轉(zhuǎn)成json數(shù)據(jù)
information3 = json.dumps(information1,ensure_ascii=False)

information11 = json.loads(information3)  # json轉(zhuǎn)成字典數(shù)據(jù)
print(information11)

圖片

json.load

打開json文件再轉(zhuǎn)成字典形式的數(shù)據(jù)

# 使用json.load

with open("information_to_json.json",encoding="utf-8") as f:
    json_to_dict = json.load(f)  # json轉(zhuǎn)成字典

print(json_to_dict)

圖片

4. JSON 和 非 Dict 類型的轉(zhuǎn)化

上面介紹的主要是json格式數(shù)據(jù)和Python字典之間的轉(zhuǎn)化,下面講解了Python其他數(shù)據(jù)類型通過json.dumps方法轉(zhuǎn)成json個數(shù)據(jù):

1、元組轉(zhuǎn)化

圖片

2、列表轉(zhuǎn)化

圖片

3、布爾值轉(zhuǎn)化

圖片

4、數(shù)值型數(shù)據(jù)轉(zhuǎn)化

圖片

5. 利用 Demjson 來解析

DemjsonPython的第三方庫,能夠用于編碼和解碼json數(shù)據(jù):

  • encode:將 Python 對象編碼成 JSON 字符串
  • decode:將已編碼的 JSON 字符串解碼為 Python 對象

安裝demjson

直接使用pip install demjson安裝,kan'dao看到如下界面表示安裝成功。

圖片

使用demjson

使用之前先進(jìn)行導(dǎo)入:

import demjson   # 導(dǎo)入包

1、編碼功能

圖片

2、解碼功能

圖片

demjson包一個明顯的缺點(diǎn)就是不能直接解析中文數(shù)據(jù):

圖片

如果我們想看到中文數(shù)據(jù),可以使用eval函數(shù):

圖片

6. Pandas處理 json

下面介紹pandas庫對json數(shù)據(jù)的處理:

  • read_json:從json文件中讀取數(shù)據(jù)
  • to_json:將pandas中的數(shù)據(jù)寫入到j(luò)son文件中
  • json_normalize:對json數(shù)據(jù)進(jìn)行規(guī)范化處理

https://geek-docs.com/pandas/pandas-read-write/pandas-reading-and-writing-json.html

6.1 read_json

首先看看官網(wǎng)中read_json的參數(shù):

pandas.read_json(
  path_or_buf=None,  # json文件路徑
  orient=None,  # 重點(diǎn)參數(shù),取值為:"split"、"records"、"index"、"columns"、"values"
  typ='frame',   # 要恢復(fù)的對象類型(系列或框架),默認(rèn)’框架’.
  dtype=None, # boolean或dict,默認(rèn)為True
  convert_axes=None, 
  convert_dates=True, 
  keep_default_dates=True, 
  numpy=False, 
  precise_float=False, 
  date_unit=None, 
  encoding=None, 
  lines=False,  # 布爾值,默認(rèn)為False,每行讀取該文件作為json對象
  chunksize=None,
  compression='infer', 
  nrows=None, 
  storage_options=None)

詳細(xì)的參數(shù)解析可以參考文章:https://blog.csdn.net/qq_41562377/article/details/90203805

假設(shè)我們現(xiàn)在有一份json數(shù)據(jù),如下圖所示:

圖片

我們將上面的數(shù)據(jù)讀取進(jìn)來,由于數(shù)據(jù)是比較規(guī)范的,所以直接填寫文件路徑即可讀取:

圖片

重點(diǎn)講解下參數(shù)orient

1、oriden='split'

split’ : dict like {index - > [index], columns - > [columns], data - > [values]}

json文件的key的名字只能為index,cloumns,data這三個,另外多一個key都不行,少一個也不行。舉例說明:

圖片

2、orient='records'

‘records’ : list like [{column - > value}, … , {column - > value}]

圖片

3、orient='index'

dict like {index - > {column - > value}}

圖片

4、orient='columns'

dict like {column - > {index - > value}}

圖片

轉(zhuǎn)置之后就是上面orient='index'的結(jié)果

圖片

5、orient='values'

values’ : just the values array

圖片

6.2 to_json

to_json方法就是將DataFrame文件保存成json文件:

df.to_json("個人信息.json")   # 直接保存成json文件

如果按照上面的代碼保存,中文是沒有顯示的:

圖片

當(dāng)然我們可以通過json.load將json文件再次讀取進(jìn)行,顯示中文,我們也可以直接在保存的時候顯示中文:

df.to_json("個人信息1.json",force_ascii=False)   # 顯示中文

圖片

6.3 json_normalize

https://www.jianshu.com/p/a84772b994a0

上面介紹的json數(shù)據(jù)的保存和讀取中json數(shù)據(jù)都是列表形式的;但是json文件中的數(shù)據(jù)通常不一定全部是列表形式,那么我們需要將字典結(jié)構(gòu)的文件轉(zhuǎn)成列表形式,這個過程就叫做規(guī)范化。

pandas中的json_normalize()函數(shù)能夠?qū)⒆值浠蛄斜磙D(zhuǎn)成表格,使用之前先進(jìn)行導(dǎo)入:

from pandas.io.json import json_normalize

通過官網(wǎng)和一個實(shí)際的例子來同時進(jìn)行學(xué)習(xí),首先看看官網(wǎng)的例子:

1、層級字典通過屬性的形式顯示數(shù)據(jù):

圖片

2、如果加入max_level參數(shù)則會顯示不同的效果:

若max_level=0,則嵌套的字典會當(dāng)做整體,顯示在數(shù)據(jù)框中

圖片

若max_level=1,則嵌套的字典會被拆解,里面的鍵會被單獨(dú)出來:

圖片

3、讀取層級嵌套中的部分內(nèi)容:

圖片

4、讀取全部內(nèi)容

圖片

7. 總結(jié)一下

json數(shù)據(jù)是工作中經(jīng)常會遇到的一種數(shù)據(jù)格式,也是很重要的一種數(shù)據(jù)。

本文首先對json數(shù)據(jù)及格式進(jìn)行了簡介,重新認(rèn)識json數(shù)據(jù);其次,結(jié)合各種實(shí)際案例,將jsonPython的各種數(shù)據(jù)類型,尤其是字典類型進(jìn)行了轉(zhuǎn)化;最后,重要講解了json數(shù)據(jù)的讀取、寫入和規(guī)范化的操作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7246

    瀏覽量

    91153
  • 網(wǎng)站
    +關(guān)注

    關(guān)注

    2

    文章

    259

    瀏覽量

    23472
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86268
  • JSON
    +關(guān)注

    關(guān)注

    0

    文章

    121

    瀏覽量

    7279
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Python利用pandas讀寫Excel文件

    使用pandas模塊讀取Excel文件可以更為方便和快捷。pandas可以將Excel文件讀取為一個DataFrame對象,方便進(jìn)行數(shù)據(jù)處理和分析。
    的頭像 發(fā)表于 12-16 11:22 ?1895次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>利用</b><b class='flag-5'>pandas</b>讀寫Excel文件

    Python存儲數(shù)據(jù)詳解

    Python開發(fā)中,數(shù)據(jù)存儲、讀取是必不可少的環(huán)節(jié),而且可以采用的存儲方式也很多,常用的方法有json文件、csv文件、MySQL數(shù)據(jù)庫、Redis
    發(fā)表于 03-29 15:47

    python數(shù)據(jù)分析的類庫

    ,因?yàn)樗匾?Pandas庫提供了我們很多函數(shù),能夠快速的方便的,處理結(jié)構(gòu)化的大型數(shù)據(jù),不夸張的說,Pandas是讓Python成為強(qiáng)大
    發(fā)表于 05-10 15:18

    pandas對babynames數(shù)據(jù)集的簡單處理

    利用Python進(jìn)行數(shù)據(jù)分析——第二章 引言(2):利用pandas對babynames數(shù)據(jù)集進(jìn)
    發(fā)表于 08-09 12:58

    pandas和seaborn繪圖方法

    利用Python進(jìn)行數(shù)據(jù)分析》 92 使用pandas和seaborn繪圖
    發(fā)表于 10-28 10:25

    Python機(jī)器學(xué)習(xí)入門之pandas的使用提示

    系列文章目錄提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加例如:第一章 Python 機(jī)器學(xué)習(xí)入門之pandas的使用提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助
    發(fā)表于 08-13 07:36

    Python中高效使用JSON的四種方法

    字典和列表是 Python的兩種數(shù)據(jù)類型,也是用來處理JSON的完美工具。本文將主要分享以下內(nèi)容:如何載入、編寫JSON?如何在命令行上優(yōu)化
    的頭像 發(fā)表于 09-14 15:17 ?2958次閱讀
    在<b class='flag-5'>Python</b>中高效使用<b class='flag-5'>JSON</b>的四種方法

    Python工具pandas篩選數(shù)據(jù)的15個常用技巧

    pandasPython數(shù)據(jù)分析必備工具,它有強(qiáng)大的數(shù)據(jù)清洗能力,往往能用非常少的代碼實(shí)現(xiàn)較復(fù)雜的數(shù)據(jù)處理 今天,總結(jié)了
    的頭像 發(fā)表于 03-30 10:44 ?3215次閱讀
    <b class='flag-5'>Python</b>工具<b class='flag-5'>pandas</b>篩選<b class='flag-5'>數(shù)據(jù)</b>的15個常用技巧

    Python中三個json組件的安裝方式

    Python 使用用 json.dumps(data) 時突然發(fā)現(xiàn)特別慢,data 本身不大,但是一個包含很多元素的列表,所以促使本人尋找一個替代的 JSON 處理庫。大概對比了一
    的頭像 發(fā)表于 09-23 14:35 ?6460次閱讀
    <b class='flag-5'>Python</b>中三個<b class='flag-5'>json</b>組件的安裝方式

    詳解Python中的Pandas和Numpy庫

    pandas、numpy是Python數(shù)據(jù)科學(xué)中非常常用的庫,numpy是Python的數(shù)值計算擴(kuò)展,專門用來處理矩陣,它的運(yùn)算效率比列表更
    的頭像 發(fā)表于 05-25 12:49 ?3133次閱讀

    怎么用C+JS結(jié)構(gòu)來處理JSON數(shù)據(jù)

    在物聯(lián)網(wǎng)產(chǎn)品的開發(fā)過程中,對JSON格式的數(shù)據(jù)處理是一個強(qiáng)需求,例如亞馬遜的 AWS IOT平臺,設(shè)備與后臺之間的通訊數(shù)據(jù)都是JSON格式,
    的頭像 發(fā)表于 02-14 13:46 ?984次閱讀
    怎么用C+JS結(jié)構(gòu)<b class='flag-5'>來處理</b><b class='flag-5'>JSON</b><b class='flag-5'>數(shù)據(jù)</b>?

    如何利用Dataloder來處理加載數(shù)據(jù)

    在Pytorch中,torch.utils.data中的Dataset與DataLoader是處理數(shù)據(jù)集的兩個函數(shù),用來處理加載數(shù)據(jù)集。通常情況下,使用的關(guān)鍵在于構(gòu)建dataset類。
    的頭像 發(fā)表于 02-24 10:42 ?756次閱讀
    如何<b class='flag-5'>利用</b>Dataloder<b class='flag-5'>來處理</b>加載<b class='flag-5'>數(shù)據(jù)</b>集

    Python Pandas如何來管理結(jié)構(gòu)化數(shù)據(jù)

    Python Pandas是一個為Python編程提供數(shù)據(jù)操作和分析功能的開源工具包。這個庫已經(jīng)成為數(shù)據(jù)科學(xué)家和分析師的必備工具。它提供了一
    的頭像 發(fā)表于 05-25 11:22 ?884次閱讀
    <b class='flag-5'>Python</b> <b class='flag-5'>Pandas</b>如何來管理結(jié)構(gòu)化<b class='flag-5'>數(shù)據(jù)</b>

    PandasPython中最好的數(shù)據(jù)分析工具

    Pandas絕對是Python中最好的數(shù)據(jù)分析工具,不接受反駁。 本文將展示如何美化 Pandas DataFrame 中的數(shù)字,并使用一些更高級的
    的頭像 發(fā)表于 10-31 10:47 ?744次閱讀
    <b class='flag-5'>Pandas</b>:<b class='flag-5'>Python</b>中最好的<b class='flag-5'>數(shù)據(jù)</b>分析工具

    PandasPython中強(qiáng)大方便的繪圖功能

    PandasPython中非常常用的數(shù)據(jù)處理工具,使用起來非常方便。由于建立在NumPy數(shù)組結(jié)構(gòu)之上,所以它的很多操作通過NumPy或者Pandas自帶的擴(kuò)展模塊編寫,這些模塊用Cy
    的頭像 發(fā)表于 11-03 11:04 ?730次閱讀
    <b class='flag-5'>Pandas</b>:<b class='flag-5'>Python</b>中強(qiáng)大方便的繪圖功能
    主站蜘蛛池模板: 国产精品久久在线 | 久久精品免费观看久久 | 性欧美videofree丝袜 | 日本xxxxx黄区免费看动漫 | 天天操天天干天天爱 | 又粗又大又爽又色又过瘾视频 | 成视频年人黄网站免费视频 | 日日夜夜天天操 | 2018天天弄| 四虎永久在线观看免费网站网址 | 天天天天添天天拍天天谢 | 男人午夜视频在线观看 | 在线99热| 日本精品视频四虎在线观看 | 国产精品一区二区三 | 免费在线黄网 | 成人a区| 国产一区二区三区美女图片 | 国产免费播放一区二区三区 | 天堂黄网| 夜夜夜爽bbbb性视频 | 亚洲国产精品久久精品怡红院 | 女生扒开尿口让男生舔 | 欧美日韩一区二区三区视视频 | 亚洲综合激情六月婷婷在线观看 | 五月婷婷六月丁香综合 | 四虎网站在线播放 | 伊人久久大香线蕉综合7 | 国产在线h | 国产私密 | 国产在线一区二区三区四区 | 噜噜噜天天躁狠狠躁夜夜精品 | 最新国产你懂的在线网址 | 日本黄色一区 | 久久国产精品免费专区 | 人人天天爱天天做天天摸 | 久久久久久噜噜噜久久久精品 | 澳门久久精品 | 激情丁香六月 | 六月婷婷综合网 | 亚洲入口无毒网址你懂的 |