我将这些数据作为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中将其作为一个普通的dict列表来使用。我使用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!')
然后尝试访问“order”列表dict值:
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”是原因,但我尝试使用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}
]
目前没有回答
相关问题 更多 >
编程相关推荐