亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python JSON格式數(shù)據(jù)的提取和保存的實(shí)現(xiàn)

 更新時(shí)間:2019年03月22日 14:10:08   作者:mori_d  
這篇文章主要介紹了Python JSON格式數(shù)據(jù)的提取和保存的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

環(huán)境:python-3.6.5

JSON

JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,它使得人們很容易的進(jìn)行閱讀和編寫(xiě)。同時(shí)也方便了機(jī)器進(jìn)行解析和生成。適用于進(jìn)行數(shù)據(jù)交互的場(chǎng)景,比如網(wǎng)站前臺(tái)與后臺(tái)之間的數(shù)據(jù)交互。
Python中自帶了json模塊,直接import json即可使用

官方文檔:https://docs.python.org/3/library/json.html

Json在線解析網(wǎng)站:https://www.json.cn/#

json簡(jiǎn)單說(shuō)就是javascript中的對(duì)象和數(shù)組,所以這兩種結(jié)構(gòu)就是對(duì)象和數(shù)組兩種結(jié)構(gòu),通過(guò)這兩種結(jié)構(gòu)可以表示各種復(fù)雜的結(jié)構(gòu)。

對(duì)象:對(duì)象在js中表示為{ }括起來(lái)的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 { key:value, key:value, ... }的鍵值對(duì)的結(jié)構(gòu),在面向?qū)ο蟮恼Z(yǔ)言中,key為對(duì)象的屬性,value為對(duì)應(yīng)的屬性值,所以很容易理解,取值方法為 對(duì)象.key 獲取屬性值,這個(gè)屬性值的類型可以是數(shù)字、字符串、數(shù)組、對(duì)象這幾種。
數(shù)組:數(shù)組在js中是中括號(hào)[ ]括起來(lái)的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 ["Python", "javascript", "C++", ...],取值方式和所有語(yǔ)言中一樣,使用索引獲取,字段值的類型可以是 數(shù)字、字符串、數(shù)組、對(duì)象幾種。

json模塊使用

json模塊提供了四個(gè)功能:dumps,dump,load,loads,用于字符串和python數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。

json.loads()

json.loads()方法將JSON文本字符串轉(zhuǎn)換為Python對(duì)象,從JSON到Python的類型轉(zhuǎn)化對(duì)照如下:

JSON Python
object dict
array list
string unicode
number(int) int
number(real) float
true True
false False
null None

示例:

import json

# JSON文本字符串
str_list = '["a","b","c","d"]'
str_dict = '{"name":"小白","age":1000}'

# json.loads將文本字符串轉(zhuǎn)化為JSON對(duì)象,在Python里就是Python對(duì)象了
data_list = json.loads(str_list)
data_dict = json.loads(str_dict)

print(type(data_list))
print(type(data_dict))
print(data_list)
print(data_dict)

運(yùn)行結(jié)果:

<class 'list'>
<class 'dict'>
['a', 'b', 'c', 'd']
{'name': '小白', 'age': 1000}

說(shuō)明:

JSON文本字符串中,數(shù)據(jù)應(yīng)該用雙引號(hào)括起來(lái),不然會(huì)報(bào)錯(cuò)誤,比如上面str_list和str_dict中的值都應(yīng)該用雙引號(hào),數(shù)字就不用。

json.dumps

json.dumps()方法實(shí)現(xiàn)python類型轉(zhuǎn)化為json字符串,返回一個(gè)str對(duì)象把一個(gè)Python對(duì)象編碼轉(zhuǎn)換成Json字符串。從Python到JSON的類型轉(zhuǎn)化對(duì)照如下:

Python JSON
dict object
list,tuple array
str string
int, float, int- & float-derived Enums number
True true
False false
None null

示例:

import json

data_list = [1,2,3,4]
data_dict = {'name':'小黑','age':1000}

print(json.dumps(data_list))
print(json.dumps(data_dict))

運(yùn)行結(jié)果:

[1, 2, 3, 4]
{"name": "\u5c0f\u9ed1", "age": 1000}

說(shuō)明:dumps方法可以將Python數(shù)據(jù)類型轉(zhuǎn)化為JSON文本字符串,但是可以看到當(dāng)有中文的時(shí)候,轉(zhuǎn)換后中文字符都變成Unicode字符,要輸出中文需要設(shè)置dumps方法的參數(shù)ensure_ascii=True設(shè)置為ensure_ascii=False。如下:

print(json.dumps(data_dict,ensure_ascii=False))
# 運(yùn)行結(jié)果:{"name": "小黑", "age": 1000}

此外,如果需要將數(shù)據(jù)保存為文本的時(shí)候,還需要指定文件的編碼格式為utf-8,比如將上面的data_dict數(shù)據(jù)(里面有中文字符)保存為data.json文件,代碼如下:

with open('data.json','w',encoding='utf-8') as f:
  f.write(json.dumps(data_dict,ensure_ascii=False))

否則打開(kāi)保存的文件,會(huì)有亂碼。

如果要處理的是文件而不是字符串,可以使用 json.dump()和json.load()來(lái)編碼和解碼JSON數(shù)據(jù)。比如:

# 寫(xiě)入數(shù)據(jù)到文件
data_list = [{'name':'小白'},{'name':'小黑'}]
with open('data2.json','w',encoding='utf-8') as f:
  json.dump(data_list,f,ensure_ascii=False)
# 從文件讀取數(shù)據(jù)
with open('data2.json','r',encoding='utf-8') as f:
data = json.load(f)
print(data)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)滑雪者小游戲

    python實(shí)現(xiàn)滑雪者小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)滑雪者小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • python神經(jīng)網(wǎng)絡(luò)使用tensorflow實(shí)現(xiàn)自編碼Autoencoder

    python神經(jīng)網(wǎng)絡(luò)使用tensorflow實(shí)現(xiàn)自編碼Autoencoder

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)使用tensorflow實(shí)現(xiàn)自編碼Autoencoder,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 基于Python創(chuàng)建語(yǔ)音識(shí)別控制系統(tǒng)

    基于Python創(chuàng)建語(yǔ)音識(shí)別控制系統(tǒng)

    這篇文章主要介紹了通過(guò)Python實(shí)現(xiàn)創(chuàng)建語(yǔ)音識(shí)別控制系統(tǒng),能利用語(yǔ)音識(shí)別識(shí)別說(shuō)出來(lái)的文字,根據(jù)文字的內(nèi)容來(lái)控制圖形移動(dòng),感興趣的同學(xué)可以關(guān)注一下
    2021-12-12
  • python之matplotlib矢量圖svg?emf

    python之matplotlib矢量圖svg?emf

    這篇文章主要介紹了python之matplotlib矢量圖svg?emf,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 深入了解Django中間件及其方法

    深入了解Django中間件及其方法

    這篇文章主要介紹了簡(jiǎn)單了解Django中間件及其方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 使用TensorFlow實(shí)現(xiàn)SVM

    使用TensorFlow實(shí)現(xiàn)SVM

    這篇文章主要為大家詳細(xì)介紹了使用TensorFlow實(shí)現(xiàn)SVM的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼

    python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼

    本篇文章主要介紹了python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Python創(chuàng)建一個(gè)功能齊全的隨機(jī)驗(yàn)證碼生成器

    Python創(chuàng)建一個(gè)功能齊全的隨機(jī)驗(yàn)證碼生成器

    驗(yàn)證碼通過(guò)生成一張包含難以識(shí)別的文本、數(shù)字或圖像的圖像,要求用戶正確輸入其中的內(nèi)容,用于驗(yàn)證用戶身份,本篇教程將帶領(lǐng)您一步步使用Python創(chuàng)建一個(gè)功能齊全的隨機(jī)驗(yàn)證碼生成器,我們將通過(guò)導(dǎo)入必要的庫(kù)、定義輔助函數(shù)以及編寫(xiě)主函數(shù)check_code()
    2024-04-04
  • 對(duì)python數(shù)據(jù)清洗容易遇到的函數(shù)-re.sub bytes string詳解

    對(duì)python數(shù)據(jù)清洗容易遇到的函數(shù)-re.sub bytes string詳解

    今天小編就為大家分享一篇對(duì)python數(shù)據(jù)清洗容易遇到的函數(shù)-re.sub bytes string詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 詳解python tcp編程

    詳解python tcp編程

    這篇文章主要介紹了python tcp編程的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python tcp編程,感興趣的朋友可以了解下
    2020-08-08

最新評(píng)論