Python: par défaut dict clés pour éviter de KeyError

Assez python, novice développeur, pour la première fois de l'appelant

Je vais appeler quelques JSON et l'analyse pertinente des données au format csv. Je ne peux pas comprendre comment remplir l'intermédiaire json Dict fichier avec les touches par défaut, car beaucoup sont inhabitées. Le résultat est un KeyError que je tente d'analyser le contenu dans un fichier csv. Aimerais des conseils!

Grâce.

Mise à jour: merci à tous! Je suis maintenant à la réception d'un 'NoneType' erreur (fabricant):

import urllib2, json, csv, sys, os, codecs, re
from collections import defaultdict
output = 'bb.csv'
csv_writer = csv.writer(open(output, 'w'))
header = ['sku', 'name', 'description', 'image', 'manufacturer', 'upc', 'department', 'class', 'subclass']
csv_writer.writerow(header)
i=1
while i<101:
print i
bb_url = urllib2.Request("http://api.remix.bestbuy.com/v1/products(sku=*)?show=sku,name,description,image,manufacturer,upc,department,class,subclass&format=json&sort=sku.asc&page=" + str(i) + "&pageSize=100&apiKey=*****************")
bb_json = json.load(urllib2.urlopen(bb_url))
print bb_json
for product in bb_json['products']:
row = []
row.append(product['sku'])
if product['name']:
row.append(str((product['name']).encode('utf-8')))
else:
row.append("")
row.append(str(product.get('description',"")))
row.append(str(product['image'])+ " ")
if product['name']:
row.append(str(product.get('manufacturer',"").encode('utf-8')))
else:
row.append("")
row.append(str(product.get('upc','').encode('utf-8')))
row.append(str((product['department']).encode('utf-8')))
row.append(str((product['class']).encode('utf-8')))
row.append(str((product['subclass']).encode('utf-8')))
csv_writer.writerow(row)
i = i+1

OriginalL'auteur Kenfucious | 2014-07-17