Python-从字典列表中提取键和值
我有一个类似于下面的JSON树Python-从字典列表中提取键和值,python,arrays,json,python-3.x,object,Python,Arrays,Json,Python 3.x,Object,我有一个类似于下面的JSON树 objArr = [{'plants': [{'inventory_id':1,'title':'Sunflower'},{'inventory_id': 2,'title':'Palm' }],{'plants': [{'inventory_id':1, 'title':'Succulent'},{'inventory_id':2, 'title':'Lillies'}]} 我正在使用python迭代对象数组,并返回它下面的每个对象数组。到目前为止,我已经完成
objArr = [{'plants': [{'inventory_id':1,'title':'Sunflower'},{'inventory_id': 2,'title':'Palm' }],{'plants': [{'inventory_id':1, 'title':'Succulent'},{'inventory_id':2, 'title':'Lillies'}]}
我正在使用python迭代对象数组,并返回它下面的每个对象数组。到目前为止,我已经完成了“plants”的打印,它的所有对应值都分组在一个字符串中。但是,我还没有完成最后一步,那就是迭代各个“plants”对象并独立提取它们的键和值
以下是我的预期输出
singleObjArr = [{'title':'Sunflower'}, {'title':'Palm'}, {'title':'Succulent'}, {'title':'Lillies'}]
在对Python有了基本了解之后,我编写了以下脚本来提取这些值
objArr = [{'plants':[{'inventory_id':1,'title':'Sunflower'},{'inventory_id': 2,'title':'Palm' }],{'plants':[{'inventory_id':1, 'title':'Succulent'},{'inventory_id':2, 'title':'Lillies'}]}
for item in objArr:
my_dict={}
my_dict['plants']=item.get('title')
print(my_dict)
# output: {'plants': None}{'plants': None}
我知道我完全错过了一个步骤,在尝试了不同版本的脚本之后,我还没有找到一种方法来接近它,这是我最近的一次尝试。非常感谢任何指针假设一个有效的JSON,并将其转换为
objArr
,如下所示:
objArr = [{'plants': [{'inventory_id': 1, 'title': 'Sunflower'}, {'inventory_id': 2, 'title': 'Palm'}]},
{'plants': [{'inventory_id': 1, 'title': 'Succulent'}, {'inventory_id': 2, 'title': 'Lillies'}]}]
result = []
for item in objArr:
for inventory in item['plants']: # get the plants
result.append({"title": inventory["title"]}) # for each plant grab the title
print(result)
输出
[{'title': 'Sunflower'}, {'title': 'Palm'}, {'title': 'Succulent'}, {'title': 'Lillies'}]
一种更具python风格的方法是结合使用,如下所示:
# plant extractor
plants = itemgetter('plants')
# title extractor
title = itemgetter('title')
result = [{"title": title(inventory)} for item in objArr for inventory in plants(item)]
print(result)
请完成最后几行工作,将此填写到a。将JSON输入放入字符串并加载该字符串。修正你的缩进。然后,有人将能够在几分钟内提供帮助。
[{'title':d['title']}在objar中代表o,在o['plants']]中代表d
感谢您的回复!我得到了以下错误,这与我以前的尝试一致TypeError:string索引必须是整数
当我使用[“title”]
时,那么你正在做的对象[“title”]就是一个字符串