python - 如果可能,如何将 Python dict 转换为 JSON 作为列表

标签 python json

我正在尝试使用 json.dumps 将我的 Python 对象序列化为 JSON .如果你序列化一个 dict使用 json.dumps它显然会被序列化为 JSON 字典 {..} ;如果你序列化一个 listtuple ,它将是一个 JSON 数组。

我想知道是否有任何方法可以轻松序列化 Python dict作为 JSON list , 如果可能的话。如果可能的话,我的意思是如果键从 0 开始并按顺序排列,例如:

{0:'data',1:'data',2:'data}

以上将被序列化为 JSON 为:'{"0": "data", "1": "data", "2": "data"}' ,但我希望它被序列化为 ['data','data','data']因为键从 0 开始并按顺序排列。

我的理由是因为我有很多从 PHP 序列化的 JSON 数据,其中 PHP 数组有键,如果键按上述顺序排列,PHP 的 json.encode使用数组,如果它们以任何其他方式键入,它们将被序列化为 JSON 字典。我希望我的 JSON 序列化匹配我的 PHP 和 Python 代码。不幸的是,在我的情况下,更改 PHP 代码不是一个选项。

有什么建议?我找到的唯一解决方案是编写自己的函数来遍历并验证每个 python 字典,看看它是否可以先转换为 list之前 json.dumps .

编辑 :我正在序列化的这个对象可能是 listdict ,同样,它里面可以有额外的 dicts 和列表等等(嵌套)。我想知道是否有任何“简单”的方法可以做到这一点,否则我相信我可以自己编写一个递归解决方案。但是最好使用现有代码来避免更多错误。

最佳答案

您可以将字典转换为元组列表,然后对其进行排序,因为字典项不一定按您希望的顺序出现:

items = sorted(d.items(), key=lambda item: item[0])
values = [item[1] for item in items]
json_dict = json.dumps(values)

关于python - 如果可能,如何将 Python dict 转换为 JSON 作为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15996239/

相关文章:

python - 为 Linux 创建 USB 设备驱动程序

javascript - 使用变量创建 json 对象

php 返回无效的 json

java - JSON 响应以文本形式返回

json - Keycloak:验证访问 token 并获取 keycloak ID

Python re.search()不返回完整的组匹配

Python Azure Function Remote App 发布错误

python - 在一个 NumPy 数组中存储不同的数据类型?

python - 尝试在 iOS 设备上使用 ReportLab 创建 PDF 时出现权限错误

sql - 如何从表中的 oracle sql 中选择带有 group by 子句的嵌套 json 对象?