在 Python 中将对象打印为 JSON
Print an object as JSON in Python
使用该json.dumps()
方法将对象打印为 JSON,例如
print(json.dumps(my_dict))
. 该json.dumps()
方法将 Python 对象转换为 JSON 格式的字符串。
主程序
import json my_dict = {'id': 1, 'name': 'BobbyHadz'} # ✅ Print object as JSON json_str = json.dumps(my_dict) print(json_str) # 👉️ {"id": 1, "name": "BobbyHadz"} # ------------------------------------------------- # ✅ Pretty print object as JSON json_str = json.dumps(my_dict, indent=4) # { # "id": 1, # "name": "BobbyHadz" # } print(json_str) # ------------------------------------------------- # ✅ Print class instance as JSON class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary bobby = Employee('bobby', 100) json_str = json.dumps(bobby.__dict__) print(json_str) # 👉️ {"name": "bobby", "salary": 100}
我们使用该json.dumps()
方法将对象打印为 JSON。
json.dumps方法将 Python 对象转换为 JSON 格式的字符串。
主程序
import json my_dict = {'id': 1, 'name': 'BobbyHadz'} json_str = json.dumps(my_dict) print(json_str) # 👉️ {"id": 1, "name": "BobbyHadz"} print(type(json_str)) # 👉️ <class 'str'>
如果您有一个 JSON 字符串并需要将其转换为本机 Python 对象,请使用该json.loads()
方法。
主程序
import json my_dict = {'id': 1, 'name': 'BobbyHadz'} json_str = json.dumps(my_dict) print(json_str) # 👉️ {"id": 1, "name": "BobbyHadz"} native_obj = json.loads(json_str) print(native_obj) # 👉️ {'id': 1, 'name': 'BobbyHadz'}
json.loads方法将 JSON 字符串解析为本机 Python 对象。
如果您需要将对象漂亮地打印为 JSON,请
在对 的调用中将indent
参数设置为。4
json.dumps()
主程序
import json my_dict = {'id': 1, 'name': 'BobbyHadz'} json_str = json.dumps(my_dict, indent=4) # { # "id": 1, # "name": "BobbyHadz" # } print(json_str)
如果indent
设置为非负整数,则 JSON 数组元素或对象成员将使用指定的缩进级别进行漂亮打印。
在 Python 中将类对象打印为 JSON
要将类对象打印为 JSON:
- 访问
__dict__
类实例上的属性。 - 将结果传递给
json.dumps()
方法。 - 使用该
print()
函数打印对象的 JSON 表示形式。
主程序
import json class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary bobby = Employee('bobby', 100) json_str = json.dumps(bobby.__dict__) print(json_str) # 👉️ {"name": "bobby", "salary": 100}
默认
JSONEncoder
类不能直接将类实例转换为 JSON,所以我们不得不使用__dict__
实例上的属性。属性返回一个包含实例属性的__dict__
字典,可以传递给json.dumps()
方法。
主程序
import json class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary bobby = Employee('bobby', 100) print(bobby.__dict__) # 👉️ {'name': 'bobby', 'salary': 100} json_str = json.dumps(bobby.__dict__) print(json_str) # 👉️ {"name": "bobby", "salary": 100}
该类JSONEncoder
默认支持以下对象和类型。
Python | JSON |
---|---|
字典 | 目的 |
列表,元组 | 大批 |
海峡 | 细绳 |
int、float、int 和 float 派生枚举 | 数字 |
真的 | 真的 |
错误的 | 错误的 |
没有任何 | 无效的 |
请注意,JSONEncoder
默认情况下,该类不支持类实例到 JSON 的转换。