python json dumps与loads

枫铃3年前 (2021-09-30)Python254
  • 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 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'}

相关文章

python中dict的fromkeys用法

fromkeys是创造一个新的字典。就是事先造好一个空字典和一个列表,fromkeys会接收两个参数,第一个参数为从外部传入的可迭...

Python的locals()函数

Python的locals()函数会以dict类型返回当前位置的全部局部变量。 示例代码: ''' 遇到问题没人解答...

排序算法的python实现

排序算法的python实现

冒泡排序 冒泡排序是比较简单的排序方法,它的思路是重复的走过要排序的序列,一次比较两个元素,如果顺序错误&#x...

知道Python中的字符串是什么吗?

知道Python中的字符串是什么吗?

什么是Python中的字...

6 个例子教你重构 Python 代码

1. 合并嵌套的 if...

Python爬取大量数据时,如何防止IP被封

Python爬取大量数据时,如何防止IP被封

前两天我爬取了猪八戒上的一些数据网址::http://task.zbj.com/t-ppsj/p1s5.html,可...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。