json.dumps()
是 Python 标准库 json
模块中的一个函数,用于将 Python 对象转换为 JSON 格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
当你使用 json.dumps()
将包含字典的 Python 对象转换为 JSON 字符串时,可能会发现字典的键值对顺序被打乱了。
Python 的字典(dict)是无序的,这意味着字典中的键值对没有固定的顺序。json.dumps()
在处理字典时会默认按照键的插入顺序进行排序,但这并不是一个严格的顺序保证。特别是在 Python 3.6 之前,字典是无序的,而在 Python 3.7 及之后,字典是有序的,但 json.dumps()
仍然可能不会完全按照你期望的顺序输出。
如果你需要保持字典的顺序,可以使用 collections.OrderedDict
来代替普通的字典。OrderedDict
是一个有序字典,它会记住键值对的插入顺序。
import json
from collections import OrderedDict
# 使用 OrderedDict 来保持顺序
data = OrderedDict([
('order_id', 12345),
('customer_name', 'John Doe'),
('items', [
{'item_id': 1, 'quantity': 2},
{'item_id': 2, 'quantity': 1}
])
])
# 转换为 JSON 字符串
json_str = json.dumps(data, indent=4)
print(json_str)
{
"order_id": 12345,
"customer_name": "John Doe",
"items": [
{
"item_id": 1,
"quantity": 2
},
{
"item_id": 2,
"quantity": 1
}
]
}
通过使用 OrderedDict
,你可以确保在转换为 JSON 字符串时保持字典的顺序。
领取专属 10元无门槛券
手把手带您无忧上云