json模块,字典和字符串相互转换

一、字典 转 字符串

方法一:json.dumps() ,不管字典里是单引号还是双引号,都可以用json.dumps()转换成字符串,且转后都为双引号!

import json
a = {'name':'lily','age':18}
b = {"name":"lily","age":18}
print(json.dumps(a))
print(json.dumps(b))
返回

{"name": "lily", "age": 18}
{"name": "lily", "age": 18}

方法二:str (),用str将字典转成字符串后,双引号变成了单引号

a = {'name':'lily','age':18}
b = {"name":"lily","age":18}
print('a:',str(a))
print('b:',str(b))
返回

a: {'name': 'lily', 'age': 18}
b: {'name': 'lily', 'age': 18}

 

二、字符串 转 字典

方法一、json.loads() ,要求json串格式中必须的双引号!!!转后双引号变为单引号

import json
a = {'name':'lily','age':18}
c = json.dumps(a)
print('c=',c)

print(json.loads(c))
返回

c= {"name": "lily", "age": 18}
{'name': 'lily', 'age': 18}

 

 

json串为单引号时,用json.loads()会报错:由于json的key没有双引号,导致json解析错误的

a = {"name":"lily","age":18} d = str(a) print('d=',d) print(json.loads(d))
返回报错信息

d= {'name': 'lily', 'age': 18}
Traceback (most recent call last):
File "/Users/PycharmProjects/FirstScrip/lijun/op_json.py", line 14, in <module>
print(json.loads(d))
File "/Users/anaconda3/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/Users/anaconda3/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Users/anaconda3/lib/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)



 

转载于:https://www.cnblogs.com/lijun888/p/8579350.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值