1. 程式人生 > >python的json模塊的dumps,loads,dump,load方法介紹

python的json模塊的dumps,loads,dump,load方法介紹

介紹 col requests logs req pre 步驟 輸出 min

dumps和loads方法都在內存中轉換,
dump和load的方法會多一個步驟,dump是把序列化後的字符串寫到一個文件中,而load是從一個文件中讀取字符串

將列表轉為字符串

>>> a=[1,2,3,4,5]
>>> import json
>>> json.dumps(a)
[1, 2, 3, 4, 5]
>>> type(json.dumps(a))
<class str>
>>> 

將字典轉化為字符串

>>> b={"cc":12,"vv
":33} >>> json.dumps(b) {"cc": 12, "vv": 33} >>> type(json.dumps(b)) <class str>

將字符串轉為列表

>>> f=json.dumps(a)
>>> f
[1, 2, 3, 4, 5]
>>> json.loads(f)
[1, 2, 3, 4, 5]

將字符串轉為字典

>>> k=json.dumps(b)
>>> k
{"cc": 12, "vv": 33}
>>> json.loads(k) {cc: 12, vv: 33} >>>

字符串轉字典

#coding=utf-8
import requests
import json
#
ret = requests.get(http://wthrcdn.etouch.cn/weather_mini?city=北京)
ret.encoding = utf-8
s1 = ret.text
print(s1,type(s1))

d1 = json.loads(s1)
print(d1,type(d1))

輸出

{
    "data": {
        
"yesterday": { "date": "16日星期六", "high": "高溫 3℃", "fx": "北風", "low": "低溫 -6℃", "fl": "<![CDATA[3-4級]]>", "type": "" }, "city": "北京", "forecast": [{ "date": "17日星期天", "high": "高溫 6℃", "fengli": "<![CDATA[<3級]]>", "low": "低溫 -4℃", "fengxiang": "北風", "type": "" }, { "date": "18日星期一", "high": "高溫 4℃", "fengli": "<![CDATA[<3級]]>", "low": "低溫 -3℃", "fengxiang": "南風", "type": "" }, { "date": "19日星期二", "high": "高溫 7℃", "fengli": "<![CDATA[<3級]]>", "low": "低溫 -4℃", "fengxiang": "西南風", "type": "多雲" }, { "date": "20日星期三", "high": "高溫 9℃", "fengli": "<![CDATA[<3級]]>", "low": "低溫 -4℃", "fengxiang": "北風", "type": "" }, { "date": "21日星期四", "high": "高溫 11℃", "fengli": "<![CDATA[<3級]]>", "low": "低溫 -3℃", "fengxiang": "西南風", "type": "" }], "ganmao": "各項氣象條件適宜,無明顯降溫過程,發生感冒機率較低。", "wendu": "-2" }, "status": 1000, "desc": "OK" } < class str >

{
data: { yesterday: { date: 16日星期六, high: 高溫 3℃, fx: 北風, low: 低溫 -6℃, fl: <![CDATA[3-4級]]>, type: }, city: 北京, forecast: [{ date: 17日星期天, high: 高溫 6℃, fengli: <![CDATA[<3級]]>, low: 低溫 -4℃, fengxiang: 北風, type: }, { date: 18日星期一, high: 高溫 4℃, fengli: <![CDATA[<3級]]>, low: 低溫 -3℃, fengxiang: 南風, type: }, { date: 19日星期二, high: 高溫 7℃, fengli: <![CDATA[<3級]]>, low: 低溫 -4℃, fengxiang: 西南風, type: 多雲 }, { date: 20日星期三, high: 高溫 9℃, fengli: <![CDATA[<3級]]>, low: 低溫 -4℃, fengxiang: 北風, type: }, { date: 21日星期四, high: 高溫 11℃, fengli: <![CDATA[<3級]]>, low: 低溫 -3℃, fengxiang: 西南風, type: }], ganmao: 各項氣象條件適宜,無明顯降溫過程,發生感冒機率較低。, wendu: -2 }, status: 1000, desc: OK } < class dict >

將字典存入文件中,再從文件讀取出來

#coding=utf-8
import json
d1 = {name:foot}

‘‘‘
第一種寫法
json.dump(d1,open(db,w))
d1 = json.load(open(db,r))
print(d1,type(d1))
‘‘‘

#第二種寫法
with open("db","w") as f:
    json.dump(d1,f)

with open("db","r") as f:
    print(json.load(f))

參考:

http://www.cnblogs.com/bainianminguo/p/6676067.html

python的json模塊的dumps,loads,dump,load方法介紹