首页 > 解决方案 > 如何从响应中获取键和值并使用 python 将其存储在 json 文件中?

问题描述

我有一个这种格式的 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'}]

标签: python

解决方案


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

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

推荐阅读