从Python中的两个列表编写json

时间:2018-08-07 08:21:19

标签: python json

我是Python的新手。我有两个清单。一个是键列表,另一个是值列表。

title = ["Code","Title","Value",....] value = [["100","abcd",100",...],["101","efgh",200",...],...] data={} data.setdefault("data",[]).append({"code": sp[0],"val": sp[2]})

此代码为我提供了以下结果。

{'data': [{'code': '100', 'val': '100'},{'code': '101', 'val': '200'}]}

但是我想要下面的结果,

{ "100": { "Title": "abcd", "Value": "100", ............, ............}, "101": { "Title": "efgh", "Value": "200", ............, ............} }

即,值列表的第一列应是每个Json数组列表的键,并且列表的其他项应作为键和值对生成。如何使用引用这两个列表的Python代码生成Json数组。

3 个答案:

答案 0 :(得分:1)

因为没有提到list的大小,所以下面可以完成工作。我正在使用python3.x

title = ["Code","Title","Value"]
value = [["100","abcd","100"],["101","efgh","200"]]
dic1={}
for i in range(len(title)-1):
    for j in range(len(title)-1):
        dic1.setdefault(value[i][0],{}).update({title[j+1]:value[i][j+1]})

输出为

{'101': {'Title': 'efgh', 'Value': '200'}, '100': {'Title': 'abcd', 'Value': '100'}}

希望对您有帮助!

答案 1 :(得分:1)

您可以使用此列表构建字典。我做了一个简短的摘要,供您了解

title = ["Code","Title","Value"]
value = [['100','abcd','100'],['101','efgh','200']]
data={}

for whatever in value:
    your_titles = {}
    print(whatever[0])
    your_titles[title[1]] = whatever[1]
    your_titles[title[2]] = whatever[0]
    your_titles[title[0]] = whatever[2]
    data[whatever[0]] = your_titles
print(data)

输出: {'100':{'Code':'100','Value':'100','Title':'abcd'},'101':{'Code':'200','Value':'101 ','Title':'efgh'}}

read this tutorial,然后尝试自己制作。这不是解决此问题的最佳方法。

答案 2 :(得分:0)

制作数据框,然后将列设置为索引,然后将其转换为json:

fig.subplots_adjust(wspace=0, hspace=0)