gpt4 book ai didi

python - 将 MultiDict 转换为正确的 JSON

转载 作者:行者123 更新时间:2023-12-03 17:00:32 28 4
gpt4 key购买 nike

我使用 Flask (python) 发布表单时收到的 MultiDict (ImmutableMultiDict) 是

ImmutableMultiDict([
('disabled', 'False'),
('disabled', 'False'),
('debet', '11'),
('debet', '21'),
('date', '2016-11-17'),
('kredit', '12'),
('kredit', '22'),
('record', '1901'),
('record', '1902'),
('description', 'Sales of inventory')
])

我发布的表格看起来像

<form method="POST" action="/post">
<input name="description" value="Sales of inventory" />
<input name="date" value="2016-11-17" />
<div class="group">
<input name="record" value="1901" />
<input name="debet" value="11" />
<input name="kredit" value="12" />
<input name="disabled" value="False" />
</div>
<div class="group">
<input name="record" value="1902" />
<input name="debet" value="21" />
<input name="kredit" value="22" />
<input name="disabled" value="False" />
</div>
</form>

我想将此表单(不包括描述和日期)输入转换为如下所示的 JSON 格式

data = [
{
"record": 1901,
"debet": 11,
"kredit": 12,
"disabled": False
},
{
"record": 1902,
"debet": 21,
"kredit": 22,
"disabled": False
}
]

有什么好的方法吗?我已经尝试了很多东西,但我无法正确理解。

最佳答案

如果你绝对不能改变数据的发送方式,并且你确定数据总是按照与表单相同的顺序发送(确保这一点,否则无法分辨哪些值一起去),那么你可以这样做:

fields = ['record', 'debet', 'kredit', 'disabled']

num_values = len(form_data.getlist(fields[0]))

data = []

for i in range(num_values):
data.append({field: form_data.getlist(field)[i] for field in fields})

但是,我不会推荐这个。归根结底,您是以某种方式动态生成新的输入,因为看起来您的字段数量是动态的,所以为什么不直接将名称更改为 record1、record2 等。正在做这个吗?

关于python - 将 MultiDict 转换为正确的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40657535/

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