我有这些数据以JSON的形式作为JSON发送给Flask RESTful API作为有效载荷:
{"Order": [
{
"Menu_Id":1,
"Menu_Price":10,
"Order_ItemQty":2
},
{
"Menu_Id":2,
"Menu_Price":18,
"Order_ItemQty":3
}
],
"User_Id":user_id
}
然后,我想在python中使用它作为字典的常规列表。我正在使用reqparse来获取它,如下所示:
UserOrdersparser.add_argument('Order', action='append', required=True,
help='This field cant be left blank!')
UserOrdersparser.add_argument('User_Id', type=int, required=True, help='This
field cant be left blank!')
然后尝试访问“订单”列表字典值:
json_payload = UserOrders.parser.parse_args()
json_payload['Order'][0]['Menu_Id']
但我不断收到以下错误:
> print(json_payload['Order'][0]['Menu_Id'])
E TypeError: string indices must be integers
'orders'列表中的打印内容如下,我认为是'u's造成的,但是我尝试使用encode()方法对其进行解码,但没有成功:
print(json_payload)['Orders']
# 'Order': [u"{u'Menu_Id': 1, u'Menu_Price': 10, u'Order_ItemQty': 2}", u"{u'Menu_Id': 2, u'Menu_Price': 18, u'Order_ItemQty': 3}"]
注意:访问JSON数据'User_Id'
的第二项没有问题。
如何获取列表或将其转换为正确的python列表,如下所示:
[
{'Menu_Id': 1, 'Menu_Price': 10, 'Order_ItemQty': 2},
{'Menu_Id': 2, 'Menu_Price': 18, 'Order_ItemQty': 3}
]