我是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数组。
答案 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)