python json.dumps() json.dump()的區(qū)別詳解
以前寫的很簡(jiǎn)單,只有幾句話,最近發(fā)現(xiàn)本文是本博客閱讀量最大的一篇文章,覺(jué)得這樣有種把人騙進(jìn)來(lái)的感覺(jué),于是又細(xì)化了一些。如果還有不好的地方,歡迎指出。
首先說(shuō)明基本功能:
dumps是將dict轉(zhuǎn)化成str格式,loads是將str轉(zhuǎn)化成dict格式。
dump和load也是類似的功能,只是與文件操作結(jié)合起來(lái)了。
看代碼實(shí)例:
In [1]: import json In [2]: a = {'name': 'wang', 'age': 29} In [3]: b = json.dumps(a) In [4]: print b, type(b) {"age": 29, "name": "wang"} <type 'str'> In [11]: json.loads(b) Out[11]: {u'age': 29, u'name': u'wang'} In [12]: print type(json.loads(b)) <type 'dict'>
然后再看dump和dumps的區(qū)別,見(jiàn)代碼:
In [1]: import json In [2]: a = {'name': 'wang', 'age': 29} In [3]: b = json.dumps(a) In [4]: print b, type(b) {"age": 29, "name": "wang"} <type 'str'> In [5]: c = json.dump(a) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-5-92dc0d929363> in <module>() ----> 1 c = json.dump(a) TypeError: dump() takes at least 2 arguments (1 given)
這里提示我們少一個(gè)參數(shù),我們看一下幫助文件(iPyhton中可以直接使用help(json.dumps)來(lái)查看幫助文件):
dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, sort_keys=False, **kw)
Serialize ``obj`` to a JSON formatted ``str``.
dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, sort_keys=False, **kw)
Serialize ``obj`` as a JSON formatted stream to ``fp`` (a
``.write()``-supporting file-like object).
簡(jiǎn)單說(shuō)就是dump需要一個(gè)類似于文件指針的參數(shù)(并不是真的指針,可稱之為類文件對(duì)象),可以與文件操作結(jié)合,也就是說(shuō)可以將dict轉(zhuǎn)成str然后存入文件中;而dumps直接給的是str,也就是將字典轉(zhuǎn)成str。
例子見(jiàn)代碼(注意文件操作的一些小細(xì)節(jié)):
In [1]: import json In [2]: a = {'name': 'wang'} In [3]: fp = file('test.txt', 'w') In [4]: type(fp) Out[4]: file In [5]: json.dump(a, fp) In [6]: cat test.txt In [7]: fp.close() In [8]: cat test.txt {"name": "wang"} In [9]: json.load(fp) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-9-0064dabedb17> in <module>() ----> 1 json.load(fp) /usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.pyc in load(fp, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw) 285 286 """ --> 287 return loads(fp.read(), 288 encoding=encoding, cls=cls, object_hook=object_hook, 289 parse_float=parse_float, parse_int=parse_int, ValueError: I/O operation on closed file In [10]: fp = file('test.txt', 'r') In [11]: json.load(fp) Out[11]: {u'name': u'wang'}
注:實(shí)際中dump用的較少。
到此這篇關(guān)于python json.dumps() json.dump()的區(qū)別詳解的文章就介紹到這了,更多相關(guān)python json.dumps() json.dump()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python中json.dumps()函數(shù)使用和示例
- Python的json.loads() 方法與json.dumps()方法及使用小結(jié)
- Python中json.dumps()和json.dump()的區(qū)別小結(jié)
- python使用json.dumps輸出中文問(wèn)題
- python中json.dumps()和json.loads()的用法
- Python中json.dumps()函數(shù)的使用解析
- python json.dumps中文亂碼問(wèn)題解決
- python json.dumps中文亂碼問(wèn)題解決
- python中json.dumps和json.dump區(qū)別
相關(guān)文章
python使用wmi模塊獲取windows下硬盤信息的方法
這篇文章主要介紹了python使用wmi模塊獲取windows下硬盤信息的方法,涉及Python獲取系統(tǒng)硬件信息的相關(guān)技巧,需要的朋友可以參考下2015-05-05Python內(nèi)置函數(shù)delattr的具體用法
本篇文章主要介紹了Python內(nèi)置函數(shù)delattr的具體用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Python異常處理如何才能寫得優(yōu)雅(retrying模塊)
異常就是程序運(yùn)行時(shí)發(fā)生錯(cuò)誤的信號(hào),下面這篇文章主要給大家介紹了關(guān)于Python異常處理的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03pandas中std和numpy的np.std區(qū)別及說(shuō)明
這篇文章主要介紹了pandas中std和numpy的np.std區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python 分析Nginx訪問(wèn)日志并保存到MySQL數(shù)據(jù)庫(kù)實(shí)例
這篇文章主要介紹了Python 分析Nginx訪問(wèn)日志并保存到MySQL數(shù)據(jù)庫(kù)實(shí)例,需要的朋友可以參考下2014-03-03解決django同步數(shù)據(jù)庫(kù)的時(shí)候app models表沒(méi)有成功創(chuàng)建的問(wèn)題
今天小編就為大家分享一篇解決django同步數(shù)據(jù)庫(kù)的時(shí)候app models表沒(méi)有成功創(chuàng)建的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08python直接調(diào)用和使用swig法方調(diào)用c++庫(kù)
這篇文章主要介紹了python直接調(diào)用和使用swig法方調(diào)用c++庫(kù),c++運(yùn)算速度快于python,python簡(jiǎn)單易寫。很多時(shí)候?qū)τ谝延械腸++代碼也不想用python重寫,此時(shí)就自然而然地想到用python調(diào)用c或者c++,兩全其美,需要的朋友可以參考一下2022-03-03python使用在線API查詢IP對(duì)應(yīng)的地理位置信息實(shí)例
這篇文章主要介紹了python使用在線API查詢IP對(duì)應(yīng)的地理位置信息實(shí)例,需要的朋友可以參考下2014-06-06