Python 3.x 中如何使用json模块将JSON字符串转换为Python对象

介绍

JSON是一种轻量级的数据交换格式。它是一种基于文本描述的数据格式,由JavaScript语言发展而来。JSON广泛用于Web开发和移动应用程序的数据传输。Python中的json模块是与JSON数据打交道的标准方法。使用Python中内置的json模块,您可以将JSON字符串转换为Python对象,反之亦然。

导入json模块

在使用json模块之前,您需要导入它。在Python 3中,您可以使用以下命令:

import json

将JSON字符串转换为Python对象

使用json.loads()函数

要将JSON字符串转换为Python对象,您可以使用json.loads()函数。该函数接受一个JSON字符串作为参数,并返回一个Python对象。

例如,假设您有以下JSON字符串:

json_str = '{"name": "John Smith", "age": 30, "city": "New York"}'

您可以使用下面的代码将其转换为Python对象:

python_obj = json.loads(json_str)

print(python_obj)

输出结果将是:

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

注意,JSON字符串的键必须用双引号引起来。

使用json.load()函数

如果您要从文件中加载JSON数据,可以使用json.load()函数。该函数接受一个文件对象作为参数,并返回一个Python对象。

例如,假设您有一个名为data.json的文件,里面包含以下JSON数据:

{

"name": "John Smith",

"age": 30,

"city": "New York"

}

您可以使用以下代码将其加载为Python对象:

with open('data.json') as json_file:

python_obj = json.load(json_file)

print(python_obj)

输出结果将是:

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

请注意,与json.loads()函数一样,JSON数据的键也必须用双引号包围。

将Python对象转换为JSON字符串

使用json.dumps()函数

要将Python对象转换为JSON字符串,您可以使用json.dumps()函数。该函数接受一个Python对象作为参数,并返回一个JSON字符串。

例如,假设您有以下Python对象:

python_obj = {

'name': 'John Smith',

'age': 30,

'city': 'New York'

}

您可以使用以下代码将其转换为JSON字符串:

json_str = json.dumps(python_obj)

print(json_str)

输出结果将是:

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

请注意,JSON字符串中的键仍然使用双引号包围。

使用json.dump()函数

如果您想将Python对象写入文件并作为JSON格式保存,那么可以使用json.dump()函数。该函数接受两个参数:Python对象和文件对象,将Python对象转换为JSON格式并写入文件中。

例如,假设您有以下Python对象:

python_obj = {

'name': 'John Smith',

'age': 30,

'city': 'New York'

}

您可以使用以下代码将其保存为JSON格式的文件:

with open('data.json', 'w') as json_file:

json.dump(python_obj, json_file)

请注意,生成的JSON文件中的键使用双引号包围。

结论

Python的json模块提供了一种简单,方便和可靠的机制,用于将JSON字符串与Python对象之间进行转换。对于Web开发和移动应用程序开发,这是非常有用的。您可以使用json.loads()函数将JSON字符串转换为Python对象,使用json.loads()函数将Python对象转换为JSON字符串。如果您要从文件中加载或保存JSON数据,则可以使用json.load()函数和json.dump()函数。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签