从unicode转换dict列表

2024-10-02 12:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我将这些数据作为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}

        ]

Tags: 数据addidjson列表orderbeprice

热门问题