使用'json.dumps”将 Python 字典转换为 JSON 时如何控制键的顺序?

Barbara Streisand
发布: 2024-10-26 07:45:30
原创
649 人浏览过

How do I control the order of keys when converting a Python dictionary to JSON using

使用“json.dumps”进行 JSON 对象键排序

问题:

转换时使用“json.dumps”将 Python 字典转换为 JSON 对象时,键的顺序可能与预期不符。所需的顺序(例如“id”、“名称”、“时区”)未得到维护。

解决方案:

1.排序键:

要指定所需的键顺序,请将“sort_keys”参数传递给“json.dumps”。此参数按升序对键进行排序。

json.dumps(countries, sort_keys=True)
登录后复制

2.使用“OrderedDict”:

为了精确控制按键顺序,请使用“collections”模块中的“OrderedDict”而不是常规字典。 “OrderedDict”中键的顺序在转换为 JSON 时保留。

Python 3.7 及以下版本:

import json
from collections import OrderedDict

ordered_countries = OrderedDict([("id", row.id), ("name", row.name), ("timezone", row.timezone)])
print(json.dumps(ordered_countries))
登录后复制

Python 3.8 及以上版本:

import json
from collections import OrderedDict

ordered_countries = OrderedDict()
ordered_countries["id"] = row.id
ordered_countries["name"] = row.name
ordered_countries["timezone"] = row.timezone
print(json.dumps(ordered_countries))
登录后复制

3。保留输入顺序 (JSON):

如果输入已经是 JSON 对象,并且您希望在输出中保留其键顺序,请将“object_pairs_hook”参数传递给“json.loads”。此参数采用一个可调用函数,该可调用函数根据 JSON 对象的键值对返回“OrderedDict”。

import json
from collections import OrderedDict

input_json = '{"a": 1, "b": 2}'
ordered_json = json.loads(input_json, object_pairs_hook=OrderedDict)
登录后复制

以上是使用'json.dumps”将 Python 字典转换为 JSON 时如何控制键的顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板