<p>这里有两种方法可以绕过没有钥匙的字典。这两种方法都可以,但是第一种方法可能更容易使用,并且可以作为当前代码的一个插件。在</p>
<p>这是一种使用python的<code>dictionary.get()</code>方法来实现的方法。<a href="https://www.tutorialspoint.com/python/dictionary_get.htm" rel="nofollow noreferrer">Here is a page with more examples of how it works</a>。这个解决问题的方法是受当前问题的<a href="https://stackoverflow.com/a/47064338/2990052">this</a>的启发。我根据他的回答修改了你的密码。在</p>
<pre><code>import json
input_file = open('data/bestbuy_seo.json')
json_array = json.load(input_file)
product_list = []
for item in json_array:
product_details = {
'name': item.get('name', None),
'shortDescription': item.get('shortDescription', None),
'bestSellingRank': item.get('bestSellingRank', None),
'thumbnailImage': item.get('thumbnailImage', None),
'salePrice': item.get('salePrice', None),
'manufacturer': item.get('manufacturer', None),
'url': item.get('url', None),
'type': item.get('type', None),
'image': item.get('image', None),
'customerReviewCount': item.get('customerReviewCount', None),
'shipping': item.get('shipping', None),
'salePrice_range': item.get('salePrice_range', None),
'objectID': item.get('objectID', None),
'categories': item.get('categories', None)
}
product_list.append(product_details)
# Let's dump it to the screen to see if it works
print json.dumps(product_list, indent=4)
</code></pre>
<p>这是使用python中的“请求原谅而不是许可”概念的第二种方法。很容易让一个缺少属性的对象失败并继续运行。尝试和期待比一堆“如果”要快得多</p>
<p><a href="https://www.tutorialspoint.com/python/dictionary_get.htm" rel="nofollow noreferrer">Here is a post about this concept.</a></p>
^{pr2}$