1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python中json用法loads和dumps区别_pythonjsondumps与loads

python中json用法loads和dumps区别_pythonjsondumps与loads

时间:2021-03-09 02:21:00

相关推荐

python中json用法loads和dumps区别_pythonjsondumps与loads

Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待

4999元包邮

去购买 >

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’, 这样产生的字典,再转成字符串,转会字典时会报错

>>> c

"{u'a': 1, u'b': 2}"

>>> d = json.loads(c)

Traceback (most recent call last):

File "", line 1, in

File "/usr/local/lib/python2.7/json/__init__.py", line 339, in loads

return _default_decoder.decode(s)

File "/usr/local/lib/python2.7/json/decoder.py", line 364, in decode

obj, end = self.raw_decode(s, idx=_w(s, 0).end())

File "/usr/local/lib/python2.7/json/decoder.py", line 380, in raw_decode

obj, 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'}

原文链接:/yxqnote/p/0719_ms.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。