如何从响应中获取键和值,并使用python将其存储在json文件中?

时间:2019-11-13 09:25:44

标签: 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'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'}]

1 个答案:

答案 0 :(得分:2)

您可以使用列表推导来创建字典列表,这些字典将您的键,值包装在其他键值中

[{ 'key': k, 'values': v } for k, v in data.items()]