python json dumps与loads
生活随笔
收集整理的這篇文章主要介紹了
python json dumps与loads
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- json.dumps() 是將一個Python數據結構轉換為一個JSON編碼的字符串
- json.loads() 是將一個JSON編碼的字符串轉換為一個Python數據結構
一般要求當要字符串通過loads轉為python數據類型時,得外層用單引號,里面元素key和value用雙引號,不然會報錯
直接將字符串轉換為字典時,會出現如下情況
>>> import json >>> a = '{"a":1,"b":2}' >>> b = json.loads(a) >>> b {u'a': 1, u'b': 2}字典的字符串元素前面均加了個‘u’, 這樣產生的字典,再轉成字符串,轉會字典時會報錯
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> c "{u'a': 1, u'b': 2}" >>> d = json.loads(c) Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/local/lib/python2.7/json/__init__.py", line 339, in loadsreturn _default_decoder.decode(s)File "/usr/local/lib/python2.7/json/decoder.py", line 364, in decodeobj, end = self.raw_decode(s, idx=_w(s, 0).end())File "/usr/local/lib/python2.7/json/decoder.py", line 380, in raw_decodeobj, end = self.scan_once(s, idx) ValueError: Expecting property name: line 1 column 2 (char 1)所以loads在處理中,還需要把里面的u前綴修飾符去掉
如果要避免,轉換中字典元素出現‘u’,可以直接用eval()函數將其轉為字典
In [212]: a Out[212]: '{"a":"b"}'In [213]: b =eval(a)In [214]: b Out[214]: {'a': 'b'}總結
以上是生活随笔為你收集整理的python json dumps与loads的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python字典数据类型及基本操作
- 下一篇: python 利用 for ... el