在 Python 中使用 json
模块来方便地在数据和 JSON 格式字符串之间进行转换,以便进行数据的存储、传输或与其他支持 JSON 格式的系统进行交互。
JSON 字符串通过 json.loads()
函数转换为 Python 对象。
pthon对象通过json.dumps()转为字符串
import json
str_list = [1, 2, 3, "hello", {"key": "value"}]
json_str = json.dumps(str_list)
# json_str = str(feat_list)
print(json_str)
list1 = json.loads(json_str)
print(list1)
在使用 json.loads()
时,可能会遇到以下几种常见错误及解决方法:
-
ValueError: Expecting property name enclosed in double quotes
:- 原因:JSON 字符串中的键没有用双引号括起来。
- 解决方法:确保 JSON 字符串中的键和值都正确地使用双引号括起来。
-
ValueError: Extra data
:- 原因:输入的 JSON 字符串包含了多个独立的 JSON 对象或数据,而
json.loads()
期望的是一个单一的 JSON 对象或数组。 - 解决方法:检查输入的字符串,确保只包含一个有效的 JSON 数据结构。
- 原因:输入的 JSON 字符串包含了多个独立的 JSON 对象或数据,而
-
ValueError: Invalid control character at
:- 原因:JSON 字符串中包含了无效的控制字符。
- 解决方法:清理输入的字符串,去除无效的控制字符。
-
TypeError: the JSON object must be str, bytes or bytearray, not 'dict'
:- 原因:向
json.loads()
传入的参数不是字符串类型,而是字典等其他数据类型。 - 解决方法:确保传入的是一个有效的 JSON 格式的字符串。
- 原因:向
import json json_str = '{"key": "value"}' try: data = json.loads(json_str) except json.JSONDecodeError as e: print(f"解析 JSON 时出错: {e}")