Flask API - пост не является диктатом - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь использовать нативный Flask для создания API, используя request.get_ json, который, как я ожидал (из каждого учебного пособия или видео, которое я просмотрел), вернет словарь - но это список. Вытащить данные из списка сложнее, чем диктовку.

Сообщение написано из основного сценария Powershell, который читает файл CSV через import-csv, выполняет convertto- json и вызывает webrequest с -ContentType "application / json"

Я опередил JSON в powershell и поместил его в jsonlint.com - который сказал, что это действительно JSON. Открывающая (и закрывающая) скобка заставила меня взглянуть, не было ли это серии словарей в одном списке, которым он является.

JSON фрагмент:

[{"PO": «12345678», «Поставщик»: «BENZ», «Склад»: «BEZRS1», «ASIN»: «B07ZLJ7DPG», «Внешний идентификатор»: «1234567890», «Каталог»: «90210», «Заголовок»: « Persil «,« Тип окна »:« Окно доставки »,« Ожидаемая дата »:« 17.02.2020 »,« Запрошенное количество »:« 18 »,« Принятое количество »:« 18 »,« Полученное количество »:« 0 "," Количество в обращении ":" 8 "," Цена за единицу ":" 19,39 "," Скидка (%) ":" 0 "," Стоимость единицы ":" 19,39 "," Общая стоимость ":" 175,12 "} , {"PO": "987654321", "Vendor": "BENZ",

Powershell:

$payload = $file | convertto-json

Invoke-RestMethod -Uri http://127.0.0.1:5000/api -body $payload -method post -ContentType "application/json"

Flask (распечатка для отладки):

@app.route('/api', methods=['POST'])
def get_order():
    data = request.get_json()

    print(type(data))

    purchaseorder = data[0]

    print(purchaseorder)

    return jsonify(data)

1 Ответ

0 голосов
/ 28 февраля 2020

Итак, каждая строка из файла CSV была словарём, помещённым в список.

for item in data:
    purchaseorder = item

    myline = purchaseorder

    purchaseorder = myline['PO']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...