[Python] 如何操作JSON(解析和转换dict到JSON示例)

2021-05-23 799点热度 0人点赞 0条评论

在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"
}

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论