从Unicode转换字典列表

时间:2019-01-30 10:55:04

标签: python flask-restful

我有这些数据以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}

        ]

0 个答案:

没有答案