在 Python 中将对象打印为 JSON

在 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参数设置为4json.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:

  1. 访问__dict__类实例上的属性。
  2. 将结果传递给json.dumps()方法。
  3. 使用该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 的转换。

发表评论