Преобразование списка диктов из юникода - PullRequest
0 голосов
/ 30 января 2019

У меня есть эти данные, которые я отправляю в виде 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!')

Затем пытаюсь получить доступ к значениям dict списка 'order':

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

Распечатка списка 'заказов' такая же, как и ниже, и я думаю, что 'ы' являются причиной, но я попытался расшифровать их, используя метод 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}

        ]
...