我想做的是迭代。我在我的数据库的表中的一列中有这行代码:
[{u"item": 5, u"quantity": 2},{u"item": 6, u"quantity": 1}]
我将此分配给变量顺序,所以我有:
order = [{u"item": 5, u"quantity": 2},{u"item": 6, u"quantity": 1}]
然后 我想迭代它。我正在尝试以下内容:
for o in order.items():
product = o['item']
...
它没有用。我怎么转换它?
for order in orders:
ord = order.shopping_cart_details # [{u"item": 5, u"quantity": 2},{u"item": 6, u"quantity": 1}]
temp = {'order_id': order.id, 'movies': ord['item'], 'created': order.created}
full_results.append(temp)
我得到字符串索引必须是整数
答案 0 :(得分:0)
从数据库中检索以下代码的数据后,是否可以检查返回数据类型:
[{u"item": 5, u"quantity": 2},{u"item": 6, u"quantity": 1}]
使用type(order)
确定返回值的类型。可能是上述数据的返回数据是字符串格式。在这种情况下,当您将列表存储到数据库中时,您可能会考虑先使用json.dumps()
转换数据,然后再检索数据,您可以使用json.loads()
来恢复原始数据类型。在这种情况下,您可以考虑将数据库列类型更改为blob
。
答案 1 :(得分:0)
假设订单是一个字符串
O(1)
答案 2 :(得分:0)
或者为了使其更简单,您可以使用eval
功能。
order = '[{u"item": 5, u"quantity": 2},{u"item": 6, u"quantity": 1}]'
order = eval(order)
for o in order:
product = o['item']
print product