如何从响应中获取键和值,并使用python将其存储在json文件中?
我有一个这种格式的python代码,希望从响应中获取键和值如何从响应中获取键和值,并使用python将其存储在json文件中?,python,Python,我有一个这种格式的python代码,希望从响应中获取键和值 def test() data={u'Application': u'e2e', u'Cost center': u'qwerty', u'Environment': u'E2E', u'e2e3': u'aktest1', u'e2etest': u'aktest2', u'S68e2e': u'function',u'Application': u'test', u'Cost center': u'qwerty', u'En
def test()
data={u'Application': u'e2e', u'Cost center': u'qwerty', u'Environment': u'E2E', u'e2e3': u'aktest1', u'e2etest': u'aktest2', u'S68e2e': u'function',u'Application': u'test', u'Cost center': u'qwerty', u'Environment': u'E2E', u'e2e3': u'test7nov', u'e2etest': u'testapi', u'S68e2e': u'function'}
new={}
for k,v in data.items():
new["key"] = k
new["tags"] = []
for d in v:
flds = list(d)
new["tags"].append({"key": k, "values": flds})
print(new["tags"])
with open(fileName, 'w') as f:
json.dump(new["tags"], f, indent=3 * ' ')
test()
我得到的输出是
[ {'key': 'S68e2e', 'values': ['f']},
{'key': 'S68e2e', 'values': ['u']},
{'key': 'S68e2e', 'values': ['n']},
{'key': 'S68e2e', 'values': ['c']},
{'key': 'S68e2e', 'values': ['t']},
{'key': 'S68e2e', 'values': ['i']},
{'key': 'S68e2e', 'values': ['o']},
{'key': 'S68e2e', 'values': ['n']}]
这是不对的,我本以为会的
[{'key': 'Application', 'values': 'e2e'}{'key': 'Cost center', 'values': 'qwerty'}{'key': 'e2etest', 'values': 'aktest2'}]
您可以使用列表理解创建一个字典列表,将您的键、值和其他键值包装在一起
[{ 'key': k, 'values': v } for k, v in data.items()]
如果不正确,请指定预期的json文件存储与您的问题有什么关系?我想您不应该使用
new
作为变量名,这很容易混淆。@YugandharChaudhari,用预期的输出更新。谢谢@Guimoute在使用Python 3时,为什么要指定u
?这里的每个字符串都是unicode字符串。谢谢,它可以工作。我如何才能使打印的值,即使有相同的键和值再次。此代码正在删除重复项。@anj-此代码没有删除重复项,在一个字典中不能有多个相同的键,“删除”是在定义数据时进行的。如果你有进一步的问题,你应该用你的尝试/研究提出另一个问题