Python:将字典列表转换为 json

Posted

技术标签:

【中文标题】Python:将字典列表转换为 json【英文标题】:Python: converting a list of dictionaries to json 【发布时间】:2014-02-26 19:39:41 【问题描述】:

我有一个字典列表,看起来像这样:

list = ['id': 123, 'data': 'qwerty', 'indices': [1,10], 'id': 345, 'data': 'mnbvc', 'indices': [2,11]]

等等。列表中可能还有更多文档。我需要将这些转换为一个 JSON 文档,可以通过瓶子返回,但我不明白该怎么做。请帮忙。我在这个网站上看到了类似的问题,但我无法理解那里的解决方案。

【问题讨论】:

【参考方案1】:

使用json库

import json
json.dumps(list)

顺便说一下,你可以考虑把变量列表改成另一个名字,list 是用于创建列表的内置函数,如果你不改变变量名,你可能会得到一些意想不到的行为或一些错误的代码。

【讨论】:

好的。这只是一个示例,我为此使用了名称 mylist。 dumps() 也适用于列表吗?我以为它只应该用于字典。 是否可以将文件保存为 JSON Column Array 或 JSON row Array? 注意:重新分配列表 (list=[1,2,3]) 与内置方法 list() 冲突。请记住。 我想删除外部数组,@markcial。你能帮忙吗? 回复@Abdul Haseeb 看看docs.python.org/3/tutorial/datastructures.html 和list.pop([i])【参考方案2】:
import json

list = ['id': 123, 'data': 'qwerty', 'indices': [1,10], 'id': 345, 'data': 'mnbvc', 'indices': [2,11]]

写入 json 文件:

with open('/home/ubuntu/test.json', 'w') as fout:
    json.dump(list , fout)

读取 Json 文件:

with open(r"/home/ubuntu/test.json", "r") as read_file:
    data = json.load(read_file)
print(data)
#list = ['id': 123, 'data': 'qwerty', 'indices': [1,10], 'id': 345, 'data': 'mnbvc', 'indices': [2,11]]

【讨论】:

注意:重新分配列表 (list=[1,2,3]) 与内置方法 list() 冲突。请记住。【参考方案3】:
response_json = (" \"response_json\":" + str(list_of_dict)+ "").replace("\'","\"")
response_json = json.dumps(response_json)
response_json = json.loads(response_json)

【讨论】:

嗨!虽然这可以解决 OP 的问题,但通常不鼓励在 SO 上编写代码仅答案。请提供一些解释,说明为什么这是解决问题的方法,因为它将帮助 OP 更好地理解并有利于该网站的未来访问者。谢谢!【参考方案4】:

要将其转换为具有某些确定键值的单个字典,您可以使用以下代码。

data = ListOfDict.copy()
PrecedingText = "Obs_"
ListOfDictAsDict = 
for i in range(len(data)):
    ListOfDictAsDict[PrecedingText + str(i)] = data[i]

【讨论】:

以上是关于Python:将字典列表转换为 json的主要内容,如果未能解决你的问题,请参考以下文章

将 pyspark 数据框转换为 python 字典列表

Python。将 2 个列表转换为一个字典对象 [重复]

尝试将 python 字典列表转换为 SQLite 表时,我不断收到错误消息?

将 pandas.DataFrame 转换为 Python 中的字典列表

将标准 python 键值字典列表转换为 pyspark 数据框

将 Python 字典列表转换为 SciPy 稀疏矩阵