3 回答

TA贡献1847条经验 获得超7个赞
如果我理解正确,您希望将值附加到现有字典中的数组,例如以下字典:
_dict = {
"restaurantName": "Restaurant 1",
"restaurantLink": "Link 1",
"restaurantType": "Type 1",
"restaurantAddress": "Address 1",
"dateRetrieved": "14-11-2018",
"review": [
{
"reviewer": "Reviewer 1",
"reviewDetail": "Review Detail 1"
},
{
"reviewer": "Reviewer 2",
"reviewDetail": "Review Detail 2"
},{
"reviewer": "Reviewer 3",
"reviewDetail": "Review Detail 3"
}
]
}
将价值附加到审查中:
_dict['review'].append( {
"reviewer": "Reviewer 4",
"reviewDetail": "Review Detail 4"
})
在您的情况下,如果 HungrygowhereItem 是字典:
for review in reviews:
if 'review' in HungrygowhereItem:
HungrygowhereItem['review'].append({
'reviewer': reviewer,
'reviewDetail': reviewDetail
})
else:
HungrygowhereItem['review'] = [{
'reviewer': reviewer,
'reviewDetail': reviewDetail
}]

TA贡献1895条经验 获得超7个赞
首先,将键的值设为'review'列表。
>>> restaurant = {
...: "restaurantName": "Restaurant 1",
...: "restaurantLink": "Link 1",
...: "restaurantType": "Type 1",
...: "restaurantAddress": "Address 1",
...: "dateRetrieved": "14-11-2018",
...: "review": {
...: "reviewer": "Reviewer 1",
...: "reviewDetail": "Review Detail 1"
...: }
...:}
>>>
>>> restaurant['review'] = [restaurant['review']]
>>> restaurant['review']
>>> [{'reviewDetail': 'Review Detail 1', 'reviewer': 'Reviewer 1'}]
现在您可以附加到该列表。
>>> reviews = [{"reviewer": "Reviewer 2",
...: "reviewDetail": "Review Detail 2"},
...: {"reviewer": "Reviewer 3",
...: "reviewDetail": "Review Detail 3"}]
...:
>>> for review in reviews:
...: restaurant['review'].append(review)
...:
>>> restaurant['review']
>>>
[{'reviewDetail': 'Review Detail 1', 'reviewer': 'Reviewer 1'},
{'reviewDetail': 'Review Detail 2', 'reviewer': 'Reviewer 2'},
{'reviewDetail': 'Review Detail 3', 'reviewer': 'Reviewer 3'}]
如果您可以修复上游代码,您也可以restaurant在defaultdict没有'review'密钥的情况下创建一个。
>>> from collections import defaultdict
>>> restaurant = {
...: "restaurantName": "Restaurant 1",
...: "restaurantLink": "Link 1",
...: "restaurantType": "Type 1",
...: "restaurantAddress": "Address 1",
...: "dateRetrieved": "14-11-2018"
...:}
>>>
>>> restaurant = defaultdict(list, restaurant)
>>> reviews = [{"reviewer": "Reviewer 1",
...: "reviewDetail": "Review Detail1"},
...: {"reviewer": "Reviewer 2",
...: "reviewDetail": "Review Detail 2"},
...: {"reviewer": "Reviewer 3",
...: "reviewDetail": "Review Detail 3"}]
...:
>>> restaurant['reviews'].extend(reviews)
>>> restaurant['reviews']
>>>
[{'reviewDetail': 'Review Detail1', 'reviewer': 'Reviewer 1'},
{'reviewDetail': 'Review Detail 2', 'reviewer': 'Reviewer 2'},
{'reviewDetail': 'Review Detail 3', 'reviewer': 'Reviewer 3'}]
作为替代restaurant是一个defaultdict,你可以只设置键值'reviews'添加任何评论之前,空单。

TA贡献1860条经验 获得超8个赞
你必须从一些不同的review结构开始:
restaurant = {
...,
"review": []
}
请注意,这review是此处的列表。
因此,向该列表添加评论只是一个基本的列表操作:
restaurant['review'].append({
"reviewer": "Reviewer 1",
"reviewDetail": "Review Detail 1"
})
添加回答
举报