Python语言的JSON序列化和反序列化

By sto at 2019-03-05 • 0人收藏 • 153人看过

(1)标准的JSON串

image.png

(2)JSON串通过loads()方法反序列化生成对应Python类型,如下所示(在Python3.6.2版本下运行)

>>> json_info='{"data":{"total":"3","rows":[{"id":"2824","no":"Z1002118000002","locked":false,"longitude":"113.967482"},{"id":"2823","no":"Z1002118000001","locked":false,"longitude":"113.968212"},{"id":"2815","no":"Z1002104000001","locked":false,"longitude":"114.067149"}]},"ret":"200"}'
>>> json.loads(json_info)
{'data': {'total': '3', 'rows': [{'id': '2824', 'no': 'Z1002118000002', 'locked': False, 'longitude': '113.967482'}, {'id': '2823', 'no': 'Z1002118000001', 'locked': False, 'longitude': '113.968212'}, {'id': '2815', 'no': 'Z1002104000001', 'locked': False, 'longitude': '114.067149'}]}, 'ret': '200'}


(3)Python类型通过dumps()方法生成对应的JSON串,如下所示(在Python3.6.2版本下运行)


>>> import json
>>> p=json.loads(json_info)
>>> json.dumps(p)
'{"data": {"total": "3", "rows": [{"id": "2824", "no": "Z1002118000002", "locked": false, "longitude": "113.967482"}, {"id": "2823", "no": "Z1002118000001", "locked": false, "longitude": "113.968212"}, {"id": "2815", "no": "Z1002104000001", "locked": false, "longitude": "114.067149"}]}, "ret": "200"}'


附: Python和JSON的类型对应关系如下表所示:

image.png






1 个回复 | 最后更新于 2019-03-06
2019-03-06   #1

json格式是一种常用的数据格式,很多数据服务商,基于API的方式提供数据服务的时候,通常会传送json格式的数据。
json格式数据解析的时候,就需要使用到loads()函数。

例如:字符串转换为json格式

import json

json_data = json.loads(my_data) if type(my_data) == type("") else my_data


登录后方可回帖

信息栏
数据人网是数据人学习、交流和分享的平台,专注于从数据中学习,努力发觉数据之洞见,积极利用数据之价值
Loading...