【问题标题】:Flask API - post is list not dictFlask API - 帖子是列表而不是字典
【发布时间】:2020-02-26 17:36:31
【问题描述】:

我正在尝试使用本机 Flask 创建一个 API,使用 request.get_json 我期望(从我看过的每个教程或视频中)会返回一个字典 - 但它是一个列表。从列表中获取数据比从字典中获取数据更难。

这篇文章来自一个 Powershell 核心脚本,它通过 import-csv 读取 CSV 文件,执行转换为 json,并使用 -ContentType "application/json" 调用 webrequest

我在 powershell 中输出了 JSON,并将其放入 jsonlint.com - 它说它是有效的 JSON。开始(和结束)括号让我看看它是否是一个列表中的一系列字典 - 确实如此。

JSON 片段:

[ { “采购订单”:“12345678”, “供应商”:“奔驰”, “仓库”:“BEZRS1”, "ASIN": "B07ZLJ7DPG", “外部ID”:“1234567890”, “目录”:“90210”, “标题”:“Persil”, “窗口类型”:“交货窗口”, “预计日期”:“2020 年 2 月 17 日”, “要求数量”:“18”, “接受数量”:“18”, “接收数量”:“0”, “未完成数量”:“8”, “单价”:“19.39”, "折扣(%)": "0", “单位成本”:“19.39”, “总成本”:“175.12” }, { “采购订单”:“987654321”, “供应商”:“奔驰”,

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)

【问题讨论】:

  • 你能包含$payload的输出吗?

标签: python json flask


【解决方案1】:

因此,CSV 文件中的每一行都是放入列表中的字典。

for item in data:
    purchaseorder = item

    myline = purchaseorder

    purchaseorder = myline['PO']

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多