我試圖解析來自Prestashop API的結果。我準備了這個代碼。循環一維字典
prestashop = PrestaShopWebServiceDict(URL, API_KEY)
def get_order(order_id):
orders = order_id.split(",")
for order in orders:
order = prestashop.get('orders', order)['order']
for product in products['order_row']:
print product['product_reference']
它正常工作時,爲了與少數產品有關,結果是這樣的:
[
{'product_id': '6', 'price': '39.000000', 'product_reference': '000001'},
{'product_id': '7', 'price': '38.000000', 'product_reference': '000002'},
{'product_id': '8', 'price': '37.000000', 'product_reference': '000003'},
]
result:
000001 000002 000003
在該命令只包含一個產品的情況,其結果是這樣的:
for product in products['order_row']:
print product['product_reference']
:
{'product_id': '6', 'price': '39.000000', 'product_reference': '000001'}
我的不能循環播放
因爲:
Traceback (most recent call last):
File "prestapyt_dict.py", line 30, in <module>
print product['product_reference']
TypeError: string indices must be integers, not str
我不知道如何解決它。唯一的問題是檢查字典深度,但我不知道它是否是一個好的解決方案。
什麼是產品['product_reference']出錯了? – herokingsley
爲什麼不把它添加到空列表incase的響應類型obj是字典?迭代按預期工作 –
檢查數據類型-'isinstance(...,list)'或'isinstance(...,dict)'做不同的事情。 – furas