Python读写JSON数据
2020-03-14 本文已影响0人
荒剑离
首先说明下JSON数据的特性,然后介绍几个重要的转换函数。
JSON
- JSON(JavaScript Object Notation)即JavaScript对象表示法,一种轻量级,通用的文本数据格式。
- JSON语法支持对象(Object),数组(Array),字符串,数字(number: int/real)以及true/false和null。
同时支持多层嵌套Object或Array。 - JSON拥有严格的格式,主要格式如下:
(1)只能用双引号,不能用单引号;
(2)元素之间用逗号隔开,最后一个元素不能有逗号;
(3)不支持注释;
(4)中文等特殊字符传输时应确保转为ASCII码(\uXXX格式)。
json <==> python
JSON | Python |
---|---|
Object | 字典 |
Array | 列表 |
字符串 | 字符串 |
数字 | 数字(int/float) |
true/false | True/False |
null | Null |
import json
json模块提供了四个功能:dumps
、dump
、loads
、load
,用于字符串和 python数据类型间进行转换。
- JSON字符串与Python字典的相互转换
(1)P==>J
json.dumps(字典=dict_var, indent=2,sort_keys=True, ensure_ascii=False)
:将字典转为JSON字符串。
(其中indent为多行缩进空格数,sort_keys为是否按键排序,ensure_ascii=False 禁用ascii编码,按utf-8编码)
(2)J==>P
json.loads(JSON字符串)
:将JSON字符串转为字典。
(JSON数据自动按Unicode存储,如果字符串不是合法的JSON格式,会报JSONDecodeError。) - JSON文件与字典的相互转换
(1)P==>J
json.dump(dictStr, open("dictStr.json","w"), ensure_ascii=False)
:将Python内置类型序列化为JSON对象后写入文件。
(2)J==>P
json.load(open("listStr.json"))
:读取文件中JSON形式的字符串元素 转化成python类型