利用python实现JSON文档与Python对象互相转换

  • Post category:Python

利用 Python 实现 JSON 文档与 Python 对象互相转换,可以使用 Python 内置的 json 模块完成,具体步骤如下:

将 Python 对象转换为 JSON 字符串

  1. 导入 json 模块

使用 JSON 的第一步是导入 json 模块,模块中包含了 4 个主要的函数,分别是:dump、dumps、load 和 loads。其中,dump 和 load 函数用于读写 JSON 文件,dumps 和 loads 函数则用于字符串和 Python 对象之间的转换。

import json
  1. 将 Python 对象转换为 JSON 字符串

使用 dumps 函数将 Python 对象转换为 JSON 字符串,dumps 函数的第一个参数是需要转换的 Python 对象,第二个参数 ensure_ascii=True 表示确保结果只包含 ASCII 字符。

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
json_str = json.dumps(my_dict, ensure_ascii=True)
print(json_str)

输出结果:

{"name": "John", "age": 30, "city": "New York"}

将 JSON 字符串转换为 Python 对象

  1. 导入 json 模块

同样的,使用 JSON 的第一步是导入 json 模块。

import json
  1. 将 JSON 字符串转换为 Python 对象

使用 loads 函数将 JSON 字符串转换为 Python 对象,loads 函数的第一个参数是需要转换的 JSON 字符串。

json_str = '{"name": "John", "age": 30, "city": "New York"}'
my_dict = json.loads(json_str)
print(my_dict)

输出结果:

{'name': 'John', 'age': 30, 'city': 'New York'}

示例说明

下面给出两个示例说明。

示例1

将 Python 对象转换为 JSON 字符串,并将结果写入 JSON 文件。

import json

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.json', mode='w', encoding='utf-8') as f:
    json.dump(my_dict, f, ensure_ascii=False)

输出结果:

{"name": "John", "age": 30, "city": "New York"}

示例2

从 JSON 文件中读取 JSON 字符串,并将其转换为 Python 对象。

import json

with open('data.json', mode='r', encoding='utf-8') as f:
    json_str = f.read()
my_dict = json.loads(json_str)
print(my_dict)

输出结果:

{'name': 'John', 'age': 30, 'city': 'New York'}