在Python里dict正好是和JSON相对应的,所以处理JSON基本上是dict和JSON String的互转
解析JSON String
使用json.loads()
import json
## 解析JSON String到dict
student_json = '{"name": "Terry", "age": 18, "languages": ["English", "中文"]}'
student_dict = json.loads(student_json)
# 接下来就是dict的操作了
# Output: {'name': 'Terry', 'age': 18, 'languages': ['English', '中文']}
print(student_dict)
# Output: ['English', '中文']
print(student_dict['languages'])
从json文件中读取到dict,如下:
import json
with open('my_sub.json') as f:
config_dict = json.load(f)
dict转成JSON String
可以使用json.dumps()来将Python中的dictionary转换成JSON格式的string
import json
student_dict = {'name': 'Terry', 'age': 18, 'languages': ['English', '中文']}
student_json = json.dumps(student_dict)
# Output: {"name": "Terry", "age": 18, "languages": ["English", "\u4e2d\u6587"]}
print(student_json)
dict写入JSON文件
with open('student.json', 'w') as json_file:
json.dump(student_json, json_file)
以下是Python中数据结构和JSON的对应关系
| Python | JSON对应关系 |
|---|---|
dict |
object |
list, tuple |
array |
str |
string |
int, float, int |
number |
True |
true |
False |
false |
None |
null |
格式化JSON String
如果我们想要让JSON输出的时候更容易辨别一些,可以使用json.dumps增加后面的参数,如indent(缩进)和sort_keys(根据json keys排序)
import json
student_dict = {'name': 'Terry', 'age': 18, 'languages': ['English', '中文']}
print(json.dumps(student_dict, indent=4, sort_keys=True))
打印出的结果如下:
{
"age": 18,
"languages": [
"English",
"\u4e2d\u6587"
],
"name": "Terry"
}
文章评论