我正在用Flask编写一个REST API,它应该创建一个词典词典,例如
Dictionary = {
dict1 = {},
dict2 = {}
}
我希望每个字典都能填充个别值,如果可能的话,我想在一个请求中填写两个字典。
到目前为止,我一直在使用curl请求测试我的代码,似乎它几乎就在那里......除了两个dicts都填充了相同的值集合。
api.py
dictionary = {}
@app.route('/launch', methods=['POST'])
def launch():
gw_type = request.json['type']
for t in gw_type:
dictionary[t] = {
'client': request.json['client']
'band': request.json['band']
'password': request.json['password']
return jsonify(**dictionary)
卷曲请求
curl -H "Content-Type: application/json" -X
POST -d '{"type":["type1", "type2"], "client":["test1", "test2"],
"bands":["ABCD", "ABC"], "password":["pass", "pass2"]}'
http://localhost:5000/launch
输出
{
"type1": {
"bands": [
"ABCD",
"ABC"
],
"client": [
"test1",
"test2"
],
"password": [
"pass",
"pass2"
]
},
"type2": {
"bands": [
"ABCD",
"ABC"
],
"client": [
"test1",
"test2"
],
"password": [
"pass",
"pass2"
]
}
}
如果有可能,我将如何创建多个词典('type'),以便每个TYPE在一个curl请求中为'client','band'和'password'提供它自己的唯一值?< / p>
由于
答案 0 :(得分:1)
因此,您每次都会访问client
bands
和password
的完整列表。如果按照您希望的方式在curl命令中对它们进行排序,那么您需要做的就是修改代码以使用索引来获取正确的值:
@app.route('/launch', methods=['POST'])
def launch():
gw_type = request.json['type']
for i in range(len(gw_type)):
dictionary[gw_type[i]] = {
'client': request.json['client'][i]
'band': request.json['band'][i]
'password': request.json['password'][i]
return jsonify(**dictionary)
这将获得第一个类型的第一个客户端,第一个类型的第一个带,第二个类型的第二个客户端等。