您好,登錄后才能下訂單哦!
json本身就是一種字符串。
# 需要導(dǎo)入模塊包
import json
s1 = "{'key1':'value1','key2':'value2'}"
print(s1)
print(type(s1))
js1 = json.dumps(s1)
print(js1)
print(type(js1))
結(jié)果:
{'key1':'value1','key2':'value2'}
<class 'str'>
"{'key1':'value1','key2':'value2'}"
<class 'str'>
結(jié)論:
dumps就是把字符串外面又加了一層引號(hào)。
s2 = json.loads(js1)
print(s2)
print(type(s2))
結(jié)果:
{'key1':'value1','key2':'value2'}
<class 'str'>
結(jié)論:
正好與dumps相反,減掉了最外層的引號(hào)。
d1 = {'key1':'value1','key2':'value2'}
print(d1)
print(type(d1))
js2 = json.dumps(d1)
print(js2)
print(type(js2))
結(jié)果:
{'key1': 'value1', 'key2': 'value2'}
<class 'dict'>
{"key1": "value1", "key2": "value2"}
<class 'str'>
結(jié)論:
效果非常有意思。尤其是與《字符串轉(zhuǎn)json》對(duì)比一下。如果僅僅看最后得出來(lái)的數(shù)據(jù)的話,根本是看不出來(lái)。
d2 = eval(js2)
print(d2)
print(type(d2))
結(jié)果:
{'key1': 'value1', 'key2': 'value2'}
<class 'dict'>
d3 = eval(s1)
print(d3)
print(type(d3))
結(jié)果:
{'key1': 'value1', 'key2': 'value2'}
<class 'dict'>
結(jié)論:
可以看到,eval對(duì)于json和字符串的操作是相同的。
如果想操作json,最終的操作都可以轉(zhuǎn)為Python的字典類(lèi)型進(jìn)行操作。
當(dāng)然,不是非要這么做。
挺有意思的。
接收來(lái)自網(wǎng)頁(yè)的json字符串,就一定要用loads加載一下才可以。如果要是直接使用eval的話,數(shù)據(jù)會(huì)有問(wèn)題。
import json
json_str = {'key1': 'value1', 'key2': 'value2'}
# 寫(xiě)入文件
# 可以通過(guò)json包,將json串(可以是字符串類(lèi)型、字典類(lèi)型、json類(lèi)型)直接寫(xiě)入到文件中
with open('something.json') as sjw:
json.dump(json_str, sjw)
# 讀取文件
json_read = json.load('something.json')
print(json_read)
json_read.close()
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。