在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" }
文章评论