gpt4 book ai didi

python - 将 Python 字典转换为未嵌套的 JSON 对象

转载 作者:太空宇宙 更新时间:2023-11-04 04:07:33 25 4
gpt4 key购买 nike

我正在寻求使用带有键的 Python 字典:数组对作为构建数据库表的基础。字典构造如下:


schema = {'names': ['Field1', 'Field2', 'Field3'], 'type': ['STRING', 'STRING', 'INTEGER']}

由于缺乏更好的措辞,我正在寻求生成的结果 JSON 数据结构将是一个 JSON 元素数组,如下所示:

[
{
'names': 'Field1',
'type': 'STRING'
},
{
'names': 'Field2',
'type': 'STRING'
},
{
'names': 'Field3',
'type': 'INTEGER'
}
]

我已经使用了 json 模块并尝试按如下方式执行此操作:

import json
schema = {'names': ['Field1', 'Field2', 'Field3'], 'type': ['STRING', 'STRING', 'INTEGER']}
json.dumps(schema)

但是,它给了我:

'{"names": ["Field1", "Field2", "Field3"], "type": ["STRING", "STRING", "INTEGER"]}'

我可以通过使用 {}.format(..) 构造字符串来做到这一点,但我想看看是否有更有效的方式。我搜索了无数线程,但大多数线程似乎与我想要做的相反。

有什么建议吗?

干杯。

最佳答案

您可以将namestypes 数组压缩在一起,然后将其传递给列表推导式以生成字典数组。然后转储到 JSON:

import json
schema = {'names': ['Field1', 'Field2', 'Field3'], 'type': ['STRING', 'STRING', 'INTEGER']}

# assuming values is just those two lists otherwise spell out explicitly:
l = [{"names":name, "type":field} for name, field in zip(*schema.values())]

json.dumps(l)

结果:

'[{"names": "Field1", "type": "STRING"}, {"names": "Field2", "type": "STRING"}, {"names": "Field3", "type": "INTEGER"}]'

关于python - 将 Python 字典转换为未嵌套的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56978422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com