在 python 中提取键值对

Extracting Key value pair in python

我有 json 如下所示:

{
  "values" :[
  {
    "cor": "1234567",
    "num": "123456789"
  },
  {
    "cor": "45676677",
    "num": "1234567890"
  },
  {
    "cor": "67899909",
    "num": "1235467898"
  }
]
}

我需要如下输出:

{ "values" :[ { "cor": "1234567", "num": "123456789" }]}
{ "values" :[ { "cor": "45676677", "num": "1234567890" }]}
{ "values" :[ { "cor": "67899909", "num": "1235467898" }]}

我可以分别提取键和值,但无法以我需要的上述 json 格式创建 json。如果有人能提供帮助,我们将不胜感激。

我用来提取键值对的代码很少:

for key in data.keys():
    print(key);
for value in data.values():
    print(value);
for item in data["values"]:
    print(item);

这将创建您要查找的输出列表

result = []
for value in data['values']:
    result.append({'values': [value]})

输出:

[{'values': [{'cor': '1234567', 'num': '123456789'}]}, {'values': [{'cor': '45676677', 'num': '1234567890'}]}, {'values': [{'cor': '67899909', 'num': '1235467898'}]}]

如果“输出”是指打印到控制台,则有以下代码:

for item in my_json["values"]:
    print ({"values":[item]})

作为列表,它将是 my_list = [{'values':[value]}) for value in my_json['values']],但这与您提供的格式不匹配。

如果你想要一个字符串,你可以my_string = '/n'.join(str({'values':[value]}) for value in my_json['values'])

Python 中的默认设置是将引号打印为单引号,因此如果您确实需要双引号,则必须进行一些字符串格式化,例如 my_string.replace('\'','"')

替换的语法有点混乱,因为您必须将要替换的字符串括在引号中,但引号是您要替换的内容,因此您必须做一些复杂的事情例如转义引号或使用文档字符串引号分界。