日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python詳解json模塊

系統(tǒng) 1773 0

  我們在做工作中經(jīng)常會使用到j(luò)son模塊,今天就簡單介紹下json模塊

?

什么是json

JSON ,全稱為JavaScript Object Notation, 也就是JavaScript 對象標(biāo)記,它通過對象和數(shù)組的組合米表示數(shù)據(jù),構(gòu)造簡潔但是結(jié)構(gòu)化程度非常高,是一種輕量級的數(shù)據(jù)交換格式。json模塊在python中可以作為數(shù)據(jù)解析json

?

對象和數(shù)組

在JavaScript 語言中,一切都是對象。任何支持的類型都可以通過JSON來表示,例如字符串、數(shù)字、對象、數(shù)組等,但是對象和數(shù)組是比較特殊且常用的兩種類型

對象 :它在JavaScript中是使用花括號{ }包裹起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為{ keyl : valuel,key2:value2}的鍵值對結(jié)構(gòu)。在面向?qū)ο蟮恼Z言中,key為對象的屬性,value 為對應(yīng)的值。鍵名可以使用整數(shù)和字符串來表示。值的類型可以是任意類型。

數(shù)組 :數(shù)組在JavaScript中是方括號[]包裹起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為[ ”java ” ,” javascript ”,"vb " ]的索引結(jié)構(gòu)。在JavaScript中, 數(shù)組是一種比較特殊的數(shù)據(jù)類型,它也可以像對象那樣使用鍵值對,但還是索引用得多。同樣,值的類型可以是任意類型。

?

JSON對象格式

會發(fā)現(xiàn)和我們的字典格式是不是特別的一樣

            
              
                # 格式為{"name":"value"}
              
              
[{
" name " : " AnJing " , " age " : " 26 " }]

?

JSON簡單使用

loads()方法

?使用方法loads()將 json文字轉(zhuǎn)化成json對象

            
              #
            
            
               coding:utf-8
            
            
              import
            
            
               json
str 
            
            = 
            
              '''
            
            
              
    [{
    "name":"AnJing",
    "age":"26"
}]

            
            
              '''
            
            
              
data 
            
            =
            
               json.loads(str)

            
            
              print
            
            
              (data)

            
            
              print
            
            
              (type(data))

            
            
              print
            
            (data[0][
            
              '
            
            
              name
            
            
              '
            
            ])  
            
              #
            
            
               通過下標(biāo)進行選擇
            
            
              print
            
            (data[0].get(
            
              '
            
            
              name
            
            
              '
            
            
              ))

代碼結(jié)果:
[{
            
            
              '
            
            
              name
            
            
              '
            
            : 
            
              '
            
            
              AnJing
            
            
              '
            
            , 
            
              '
            
            
              age
            
            
              '
            
            : 
            
              '
            
            
              26
            
            
              '
            
            
              }]

            
            <
            
              class
            
            
              '
            
            
              list
            
            
              '
            
            >
            
              
AnJing
AnJing
            
          

注意:在使用loads的時候json字符串必須要用雙引號表示,否則會報錯

(json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 5 (char 12)

dumps()方法

使用dumps()方法將json轉(zhuǎn)換成字符串

            
              #
            
            
               coding:utf-8
            
            
              import
            
            
               json
str 
            
            =
            
               [{
    
            
            
              "
            
            
              name
            
            
              "
            
            :
            
              "
            
            
              AnJing
            
            
              "
            
            
              ,
    
            
            
              "
            
            
              age
            
            
              "
            
            :
            
              "
            
            
              26
            
            
              "
            
            
              
}]

            
            
              print
            
            
              (type(str))
data 
            
            =
            
               json.dumps(str)

            
            
              print
            
            
              (type(data))

            
            
              print
            
            
              (data)

代碼結(jié)果:

            
            <
            
              class
            
            
              '
            
            
              list
            
            
              '
            
            >
<
            
              class
            
            
              '
            
            
              str
            
            
              '
            
            >
            
              
[{
            
            
              "
            
            
              name
            
            
              "
            
            : 
            
              "
            
            
              AnJing
            
            
              "
            
            , 
            
              "
            
            
              age
            
            
              "
            
            : 
            
              "
            
            
              26
            
            
              "
            
            }]
          

另外如果想要保存的文字好看點,我們可以增加一個參數(shù)indent,代表縮進字符個數(shù),已經(jīng)可以寫入中文的時候不會亂碼,加入ensure_ascii=False

            
              #
            
            
               coding:utf-8
            
            
              import
            
            
               json
str 
            
            =
            
               [{
    
            
            
              "
            
            
              name
            
            
              "
            
            :
            
              "
            
            
              安靜
            
            
              "
            
            
              ,
    
            
            
              "
            
            
              age
            
            
              "
            
            :
            
              "
            
            
              26
            
            
              "
            
            
              ,
    
            
            
              "
            
            
              性別
            
            
              "
            
            :
            
              "
            
            
            
              "
            
            
              
}]

            
            
              #
            
            
               indent 表示縮進
            
            
              
#
            
            
               ensure_ascii=False 表示寫入中文
            
            
with open(
            
              '
            
            
              123.json
            
            
              '
            
            ,
            
              '
            
            
              w
            
            
              '
            
            ,encoding=
            
              '
            
            
              utf-8
            
            
              '
            
            
              )as f:
    f.write(json.dumps(str,indent
            
            =2,ensure_ascii=
            
              False))


代碼結(jié)果:
[
  {
    
            
            
              "
            
            
              name
            
            
              "
            
            : 
            
              "
            
            
              安靜
            
            
              "
            
            
              ,
    
            
            
              "
            
            
              age
            
            
              "
            
            : 
            
              "
            
            
              26
            
            
              "
            
            
              ,
    
            
            
              "
            
            
              性別
            
            
              "
            
            : 
            
              "
            
            
            
              "
            
            
              
  }
]
            
          

load()方法

將文件內(nèi)容轉(zhuǎn)換成json數(shù)據(jù)

            
              #
            
            
               導(dǎo)入json模塊
            
            
              import
            
            
               json
str 
            
            =
            
               [{
    
            
            
              "
            
            
              name
            
            
              "
            
            :
            
              "
            
            
              AnJing
            
            
              "
            
            
              ,
    
            
            
              "
            
            
              age
            
            
              "
            
            :
            
              "
            
            
              26
            
            
              "
            
            
              
}]

            
            
              #
            
            
               通過dumps寫入文件中
            
            
with open(
            
              '
            
            
              123.json
            
            
              '
            
            ,
            
              '
            
            
              w
            
            
              '
            
            
              )as f:
    f.write(json.dumps(str))

            
            
              #
            
            
               通過load將數(shù)據(jù)轉(zhuǎn)換成json
            
            
data = json.load(open(
            
              '
            
            
              123.json
            
            
              '
            
            ,
            
              '
            
            
              r
            
            
              '
            
            
              ))

            
            
              print
            
            
              (data)

代碼結(jié)果:
[{
            
            
              '
            
            
              name
            
            
              '
            
            : 
            
              '
            
            
              AnJing
            
            
              '
            
            , 
            
              '
            
            
              age
            
            
              '
            
            : 
            
              '
            
            
              26
            
            
              '
            
            }]
          

dump()方法

將json數(shù)據(jù)寫入到文件中

            
              #
            
            
               coding:utf-8
            
            
              import
            
            
               json
str 
            
            =
            
               [{
    
            
            
              "
            
            
              name
            
            
              "
            
            :
            
              "
            
            
              AnJing
            
            
              "
            
            
              ,
    
            
            
              "
            
            
              age
            
            
              "
            
            :
            
              "
            
            
              26
            
            
              "
            
            
              
}]

            
            
              #
            
            
               通過dump寫入到j(luò)son中
            
            
json.dump(str,open(
            
              '
            
            
              123.json
            
            
              '
            
            ,
            
              '
            
            
              w
            
            
              '
            
            
              ))

            
            
              #
            
            
               通過load查看是否寫入
            
            
data = json.load(open(
            
              '
            
            
              123.json
            
            
              '
            
            ,
            
              '
            
            
              r
            
            
              '
            
            
              ))

            
            
              print
            
            
              (data)


代碼結(jié)果:
[{
            
            
              '
            
            
              name
            
            
              '
            
            : 
            
              '
            
            
              AnJing
            
            
              '
            
            , 
            
              '
            
            
              age
            
            
              '
            
            : 
            
              '
            
            
              26
            
            
              '
            
            }]
          

?

?

簡單的寫了寫json模塊的使用方法,以及json的簡單介紹,歡迎繼續(xù)補充沒有涉及到的知識。

?

感覺寫的對您有幫助的,點個關(guān)注不迷路~~~~


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 井冈山市| 丽水市| 鹤庆县| 河南省| 承德县| 吉木乃县| 白水县| 唐海县| 教育| 长子县| 田阳县| 湘乡市| 孟连| 南江县| 连云港市| 蒙自县| 逊克县| 济源市| 武川县| 临邑县| 越西县| 格尔木市| 龙南县| 乡城县| 汉阴县| 兰州市| 连南| 东乡| 大渡口区| 苍溪县| 金阳县| 蒙阴县| 上思县| 辰溪县| 永春县| 东丽区| 江华| 无棣县| 南华县| 襄城县| 大城县|