首页 > 解决方案 > Flask:函数输出未按预期解析

问题描述

我目前正在努力理解,为什么 Python / Flask 会以奇怪的方式解析函数输出。

为了处理输入的 json 数据,我创建了一个函数,它接受输入并添加一个 id 和一个 created at 字段。

我现在期望发生的是函数创建的 id 和时间戳字段,仅包含创建的值,例如 id = 7ae6613e-cddb-43b3-a5de-3336dab996fa。

在这个过程中,它似乎正在发挥作用。

但实际返回的是:

Added item {'id': UUID('7ae6613e-cddb-43b3-a5de-3336dab996fa'), 'created_at': datetime.datetime(2021, 4, 25, 11, 29, 24, 328130), 'name': 'productB', 'brand': 'brandB'}

我使用的功能

@product.route("/product",methods=['POST'])
def create_product():
  if request.data:

    request_data = request.get_json()

    id = uuid.uuid4()
    timestamp = datetime.now()
    print(id)
    name = None
    brand = None

    if 'name' in request_data:
        name = request_data['name']   
   
    if 'brand' in request_data:
        brand = request_data['brand']
   
    _new_product = {
        "id": id,
        "created_at": timestamp,
        "name": name,
        "brand": brand
    }
    products.append(_new_product)
    return f"Added item {_new_product}", 200

标签: pythonflask

解决方案


通过向 id 和时间戳添加 str 转换,我能够解决这个问题。

不确定这是否真的是要走的路,但它确实解决了它。

很高兴得到反馈/更好的解决方案。:)

目前,这解决了它

 _new_product = {
        "id": str(id),
        "created_at": str(timestamp),
        "name": name,
        "brand": brand
    }

推荐阅读