我正在尝试解析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
在订单只包含一种产品的情况下,结果如下:
{'product_id': '6', 'price': '39.000000', 'product_reference': '000001'}
我不能循环它:
for product in products['order_row']:
print product['product_reference']
因为:
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#id”的索引,这需要[#s]来完成,因为它是一个字符串(例如,要获取“r”,您需要“product#id”[1]),并且由于您提供了一个字符串,因此出现了(Type)错误。你知道吗
pythonic的方法是预期错误,捕捉错误并做其他事情:
或者,您可以按照其中一个注释中的建议将字典添加到空列表中,for循环将在该列表上循环该项的全部内容。你知道吗
相关问题 更多 >
编程相关推荐