我有一些api请求,作为回复我得到了json,我把它放在列表中。 该清单是:
[
{
"status": "running",
"node": "node-name",
"uptime": 9484726,
"name": "hostname",
"maxcpu": 2,
....
....
....
....
},
{
"status": "running",
"node": "node-name",
"uptime": 9484726,
"name": "hostname",
"maxcpu": 2,
....
....
....
....
},
{
"status": "running",
"node": "node-name",
"uptime": 9484726,
"name": "hostname",
"maxcpu": 2,
....
....
....
....
从这个列表中我需要创建一个只有name和vmid的新的,需要看起来像:
[
{
"name": "some-name",
"vmid": "some-vmid"
},
{ "name": "some-name",
"vmid": "some-vmid"
}
如何在Python中执行此操作?
答案 0 :(得分:0)
你可以像这样做这个列表理解,
result = [{'name':i['name'],'vmid':i['vmid']} for i in data]
答案 1 :(得分:0)
这应该这样做:
small_list = []
for dic in big_list:
small_list.append({'name': dic['name'], 'vmid': dic['vmid']})
答案 2 :(得分:0)
pandas是一个开源库,为Python编程语言提供高性能,易于使用的数据结构和数据分析工具。有关详细信息,请参阅此link。 使用pandas的代码:
import pandas as pd
data = pd.DataFrame(input_list)
list_dict = data[["name", "vmid"]].to_dict(orient="records")
或者您可以使用JSON本身创建数据框read_json
data = pd.read_json(json_data, orient="records")
list_dict = data[["name", "vmid"]].to_dict(orient="records")