📅  最后修改于: 2023-12-03 15:19:23.755000             🧑  作者: Mango
在Python中,json.dumps()
是一个用于将Python对象转换为JSON格式的方法。dumps
表示"dump string",即将对象转化为字符串格式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端的数据交互。
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
参数解释:
obj
: 要序列化为JSON的Python对象skipkeys
: 如果对象包含无法转义的键,则跳过该键(默认为False)ensure_ascii
: 转义所有非ASCII字符(默认为True)check_circular
: 检查循环引用(默认为True)allow_nan
: 允许序列化NaN、Infinity和-Infinity(默认为True)cls
: 定义自定义的编码器对象(默认为None)indent
: 指定缩进的空白字符数,用于格式化输出separators
: 定义分隔符,如(',', ':')用于输出格式化的JSON(默认为(None, ': '))default
: 如果对象中存在无法序列化的类型,则使用default
方法转换(默认为None)sort_keys
: 对输出的JSON进行排序,按键的字母顺序(默认为False)**kw
: 其他关键字参数,如skipkeys
, ensure_ascii
, check_circular
, allow_nan
, separators
, default
等下面是几个示例展示了如何使用json.dumps()
方法:
import json
data = {
'name': 'John',
'age': 30,
'city': 'New York'
}
json_str = json.dumps(data)
print(json_str)
输出结果:
{"name": "John", "age": 30, "city": "New York"}
import json
data = {
'name': 'John',
'age': 30,
'city': 'New York'
}
json_str = json.dumps(data, indent=4)
print(json_str)
输出结果:
{
"name": "John",
"age": 30,
"city": "New York"
}
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def person_encoder(obj):
if isinstance(obj, Person):
return {'name': obj.name, 'age': obj.age}
raise TypeError(f"Object of type '{obj.__class__.__name__}' is not JSON serializable")
person = Person('John', 30)
json_str = json.dumps(person, default=person_encoder)
print(json_str)
输出结果:
{"name": "John", "age": 30}
json.dumps()
方法默认将非ASCII字符转义为Unicode转义序列。如果要保留非ASCII字符的原始形式,可以将ensure_ascii
参数设置为False。indent
参数指定缩进的空白字符数。default
参数指定编码器函数。json.dumps()
方法会抛出TypeError
异常。可以通过定义一个自定义的编码器,并使用default
参数来处理这些类型。json.dumps()
方法是Python中处理JSON数据的重要工具之一。它提供了许多选项可以用于定制化JSON的生成方式。通过适当地使用这些选项,开发人员可以更好地控制JSON数据的生成过程。