迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 Python 中将对象打印为 JSON

作者:迹忆客 最近更新:2022/09/20 浏览次数:

使用 json.dumps() 方法将对象打印为 JSON,例如 print(json.dumps(my_dict))json.dumps() 方法将 Python 对象转换为 JSON 格式的字符串。

import json

my_dict = {'id': 1, 'name': 'Jiyik'}

# ✅ Print object as JSON
json_str = json.dumps(my_dict)
print(json_str)  # 👉️ {"id": 1, "name": "Jiyik"}

# -------------------------------------------------

# ✅ Pretty print object as JSON
json_str = json.dumps(my_dict, indent=4)
# {
#     "id": 1,
#     "name": "Jiyik"
# }
print(json_str)

# -------------------------------------------------


# ✅ Print class instance as JSON
class Employee():
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary


bobby = Employee('jiyik', 100)

json_str = json.dumps(bobby.__dict__)
print(json_str)  # 👉️ {"name": "jiyik", "salary": 100}

python 将对象打印为json

我们使用 json.dumps() 方法将对象打印为 JSON。

json.dumps 方法将 Python 对象转换为 JSON 格式的字符串。

import json

my_dict = {'id': 1, 'name': 'Jiyik'}

json_str = json.dumps(my_dict)
print(json_str)  # 👉️ {"id": 1, "name": "Jiyik"}

print(type(json_str))  # 👉️ <class 'str'>

如果您有 JSON 字符串并且需要将其转换为原生 Python 对象,请使用 json.loads() 方法。

import json

my_dict = {'id': 1, 'name': 'Jiyik'}

json_str = json.dumps(my_dict)
print(json_str)  # 👉️ {"id": 1, "name": "Jiyik"}

native_obj = json.loads(json_str)
print(native_obj)  # 👉️ {'id': 1, 'name': 'Jiyik'}

json.loads 方法将 JSON 字符串解析为原生 Python 对象。

如果我们需要将对象漂亮地打印为 JSON,请在调用 json.dumps() 时将 indent 参数设置为 4。

import json

my_dict = {'id': 1, 'name': 'Jiyik'}

json_str = json.dumps(my_dict, indent=4)
# {
#     "id": 1,
#     "name": "Jiyik"
# }
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


jiyik = Employee('jiyik', 100)

json_str = json.dumps(jiyik.__dict__)
print(json_str)  # 👉️ {"name": "jiyik", "salary": 100}

默认的 JSONEncoder 类不能直接将类实例转换为 JSON,所以我们不得不在实例上使用 __dict__ 属性。

__dict__ 属性返回一个包含实例属性的字典,可以传递给 json.dumps() 方法。

import json


class Employee():
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary


jiyik = Employee('jiyik', 100)
print(jiyik.__dict__) # 👉️ {'name': 'jiyik', 'salary': 100}

json_str = json.dumps(jiyik.__dict__)
print(json_str)  # 👉️ {"name": "jiyik", "salary": 100}

JSONEncoder 类默认支持以下对象和类型。

Python JSON
dict object
list, tuple array
str string
int, float, int and float derived Enums number
True true
False false
None null

注意 JSONEncoder 类默认不支持类实例到 JSON 的转换。

本站文章均为原创或翻译,转载请发邮件至 1244347461@qq.com 进行申请,未经许可,禁止转载。经作者同意之后,转载请以链接形式注明出处

本文地址:

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

热门文章

教程更新

热门标签

扫码一下
查看教程更方便