python的json模塊的dumps,loads,dump,load方法介紹
阿新 • • 發佈:2019-02-18
介紹 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方法介紹