謝謝所有 - 我試圖解析此代碼塊時無法解決'NoneType'錯誤。該錯誤與「製造商」字段有關。我也嘗試將該行的格式與'name'元素的行相似,在這種情況下,我受到KeyError的困擾。謝謝!嘗試解析JSON到csv時出現NoneType錯誤
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'])+ " ")
row.append(str(product.get('manufacturer',"").encode('utf-8')))
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
回溯:
Traceback (most recent call last):
File "C:\Py\Pointinside\q1\bb_ext.py", line 39, in <module>
row.append(str(product.get('manufacturer',"").encode('utf-8')))
AttributeError: 'NoneType' object has no attribute 'encode'
是否有可能某些產品可能沒有製造商定義? – MattDMo
嗨馬特 - 是的,這正是問題所在。 – Kenfucious
您能否包含回溯? – shaktimaan