gpt4 book ai didi

python-3.x - 从 ImmutableMultiDict 中提取的智能方法(列表中的字典)

转载 作者:行者123 更新时间:2023-12-02 22:24:19 33 4
gpt4 key购买 nike

Python3.6.1::Anaconda 4.4.0(64bit) + Flask 0.12.2

我像这样使用 jQuery 发布我的数据

前端

$.ajax({
url:'/immutableTest',
data: {'key': kvs },
type: 'POST'
});

typeof kvs是一个对象(数组),里面有很多对象。因此,当 console.log(kvs) 获取

(3) [{…}, {…}, {…}]
0:{"status": "good", "color": "#414141", "describe": "The machine is running"}
1:{"status": "error", "color": "#ff0000", "describe": "Something error with it"}
2:{"status": "powerOff", "color": "#000000", "describe": "Closing"}

后端

我的数据看起来像在后端

@main.route('/immutableTest', methods=['POST'])
def immutableTest():
for k, v in request.form.items():
print(k, v)

key[0][status] powerOff
key[0][color] #414141
key[0][describe] The machine is running
key[1][status] error
key[1][color] #ffff00
key[1][describe] Something error with it
key[2][status] powerOff
key[2][color] #000000
key[2][describe] Closing

所以我编写程序来提取我需要的键值。 我想重新编写以下代码。

@main.route('/immutableTest', methods=['POST'])
def immutableTest():
kvs=[]
kv={}
i=0
for kk, vv in request.form.items():
kv[kk.split('[')[2].replace(']', '')] = vv
if i == 2:
kvs.append(kv)
kv={}
i = 0
else:
i = i + 1
print(kvs)
# Script to Database to update...
return 'Update success.'

这将导致

[
{"status": "good", "color": "#414141", "describe": "The machine is running"},
{"status": "error", "color": "#ff0000", "describe": "Something error with it"},
{"status": "powerOff", "color": "#000000", "describe": "Closing"}
]

是否有更易于管理和标准的方法来获得相同的结果?

我需要结果,以便我可以轻松更新 MongoDB 中的数据。

最佳答案

嗯,您必须在您的上下文中定义“智能”的含义。如果您想要更易于管理且更标准的方式在 JS 前端和 Python 后端之间传输结构化数据,您可以使用 JSON,而不是将数据打包为 POST 结构。例如JS端:

$.ajax({
url:'/immutableTest',
data: JSON.stringify(kvs),
contentType: "application/json",
type: 'POST'
});

然后在您的 Flask 应用中:

@main.route('/immutableTest', methods=['POST'])
def immutableTest():
kvs = request.get_json()
print(kvs)

它应该自动传输结构。

关于python-3.x - 从 ImmutableMultiDict 中提取的智能方法(列表中的字典),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47645029/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com