【发布时间】:2021-10-24 23:20:26
【问题描述】:
我有一个 Flask 应用程序。该应用程序将一个 JSON 文件发送到使用 jsonify 对其进行解析的服务器。然后使用新解析的对象调用第三方 API。我在设置方面遇到了困难,因为我似乎无法使用 jsonified 响应对象从函数中调用第三方 API。
我的解析函数
@site.route('/data', methods=['POST'])
def parse_request():
data = request.get_json()
print(data)
return jsonify(success=True)
buy(data)
print(data) 看起来像这样:
data = [{'id': '001', 'product': 'Tshirt', 'price': '9.99', 'quantity': '1'}, {'id': '002', 'product': 'Trousers', 'price': '19.99', 'quantity': '3'}, {'id': '003', 'product': 'Jacket', 'price': '29.99', 'quantity': '2'}]
如果我将 buy(data) 移动到 return 语句上方,我会收到以下错误:
AttributeError: 'list' object has no attribute 'keys'.
调用第三方 API:
def buy(data):
for key in data.keys():
id = data[key]['id']
quantity = data[key]['quantity']
api.submit_order(
product=product,
quantity=quantity
print((f"Submitted order for {quantity} piece(s) of {product}(s)"))
return
根据我在parse_request() 中调用buy(data) 的位置,我要么得到属性错误,要么什么也没有发生。我做错了什么?
【问题讨论】: