[英]python: post key/value pairs in request body
我有一個使用flask的現有python API,它在主體中提交發布請求,然后調用並執行另一個python腳本:
testingREST.py:
import testingdf
import json
from flask import Flask, json, request
app = Flask(__name__)
@app.route("/results", methods=['POST'])
def createResults():
entry = request.get_json().get('entry', '')
passcode = request.get_json().get('passcode', '')
data = testingdf.test(entry, passcode)
response = app.response_class(
response=json.dumps(data),
status=200,
mimetype='application/json'
)
return response
if __name__ == "__main__":
app.run(debug = True, host='localhost', port=8080, passthrough_errors=False)
testingdf.py:
import pandas as pd
def test(entry, passcode):
df = pd.DataFrame()
testInput = zip(entry, passcode)
for entry, passcode in testInput:
df = df.append({'Entry': entry, 'Passcode': passcode}, ignore_index=True)
results = {
'Entry' : entry,
'Outcome' : passcode,
}
return results
這是我在調用api時發布到請求正文中的內容
{
"entry":[21, 44, 31],
"passcode":["denied", "Try Again", "Retry"]
}
響應:
{
"Entry": 35,
"Outcome": "Success"
}
問題:在請求正文中,有一種方法可以讓我具有類似以下內容的請求正文:
{
"entryInfo":[(21, "denied"), (44, "Try Again"), (31, "Retry")]
}
基本上,因為我認為實現起來的方式很奇怪,因此很容易錯配,所以將它們成對傳遞。 另外,我不確定“鍵/值”是否是在此處使用的正確術語,但我希望這會有所幫助。
順便使用python3。
您的問題似乎歸結為要傳遞到燒瓶服務器的數據。 關於如何處理這些數據還有另一個問題(您只返回最后一個),但是您沒有對此提出疑問。
將其作為請求正文發送。 它使用有效的JSON列表符號。 然后,您的Flask服務器可以通過解碼JSON請求來訪問列表。
{"entryInfo": [[21, "denied"], [44, "Try Again"], [31, "Retry"]]}
不過,更好的方法可能是使用字典映射條目代碼來傳遞代碼:
{"entryInfo": {"21": "denied", "44": "Try Again", "31": "Retry"}}
是否需要最高級別的dict尚有爭議,您可以擺脫:
{"21": "denied", "44": "Try Again", "31": "Retry"}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.