python中的json数据和字典对象

一. json 数据和python对象之间的转换

1、把字典转换为 json 格式的字符串

json 的 dumps() 函数用于把字典结构转换为 json 格式的字符串。


import json
import pprint
dict1 = {
	'company': '湖北师范大学',
	'address': '湖北省黄石市',
	'employee': [
		{'name': '张三', 'title': '讲师', },
		{'name': '李四', 'title': '讲师', },
		{'name': '王五', 'title': '班主任', }
		],
	'details': {
		'start': '1973年',
		'platform': '教室',
		'business': 'python编程教育',
		}
}
json_string = json.dumps(x)
print(json_string)


结果:
{"company": "湖北师范大学", "address": "湖北省黄石市", "employee": [{"name": "张三", "title": "讲师"}, {"name": "李四", "title": "讲师"}, {"name": "王五","title": "班主任"}], "details": {"start": "1973年", "platform": "教室",
"business": "python编程教育"}}

2、把JSON格式的字符串转换为字典

json 的 loads() 方法用于把 josn格式的字符串转换为字典对象:


接着上面的代码
pprint.pprint(json.loads(json_string))

结果:
{'address': '湖北省黄石市',
'company': '湖北师范大学',
'details': {'business': 'python编程教育', 'platform': '教室', 'start':
'1973年'},
'employee': [{'name': '张三', 'title': '讲师'},
{'name': '李四', 'title': '讲师'},
{'name': '王五', 'title': '班主任'}]}


二. json和字典的区别

json是一种数据的格式,而字典是一种对象 ,json 的格式的数据只能是以{}和[]包裹起来的,里面的数据是用"“包起来的,而字典只能以{}来包裹,字典的数据可以是”",也可以是’'包裹起来的,

1有的时候会出现乱码的现象

可以试试这个,转换为ASCII码


json_str = json.dumps(dict1, ensure_ascii=False)

具体的代码演示:

# 默认的情况下会将中文编程 Unicode 编码
json_str = json.dumps(dict1)
print('json_str:', [json_str])

结果:
json_str: ['{"company": "\\u9752\\u706f\\u6559\\u80b2", "address": "\\u6e56\\u5357\\u7701\\u957f\\u6c99\\u5e02", "employee": [{"name": "\\u6b63\\u5fc3", "title": "\\u8bb2\\u5e08"}, {"name": "\\u5c71\\u79be", "title": "\\u8bb2\\u5e08"}, {"name": "\\u4e38\\u5b50", "title": "\\u73ed\\u4e3b\\u4efb"}], "details": {"start": "2019\\u5e74", "platform": "\\u817e\\u8baf\\u8bfe\\u5802", "business": "python\\u7f16\\u7a0b\\u57f9\\u8bad"}}']


使用之后的:
# 默认的情况下会将中文编程 Unicode 编码
json_str = json.dumps(dict1, ensure_ascii=False)
print('json_str:', [json_str])


结果:
json_str: ['{"company": "湖北师范大学", "address": "湖北省黄石市", "employee": [{"name": "张三", "title": "讲师"}, {"name": "李四", "title": "讲师"}, {"name": "王五", "title": "班主任"}], "details": {"start": "1973年", "platform": "教室", "business": "python编程教育"}}']
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想做程序猿的员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值