python - 将 MultiDict 转换为正确的 JSON

标签 python json dictionary flask

我使用 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/

相关文章:

arrays - Swift:遍历字典数组

python - 循环 Python 中的 ARIMA 预测

javascript - 将 JSON 映射到 ES6 类

ios - 使用 Json Data iOS 登录 App

arrays - Swift:将一组字典扁平化为一个字典

c# - 继承字典的序列化类不是序列化属性

python - TCP 服务器/客户端 : [Errno 32] Broken pipe

python - 如何将 python 代码与 SWAT 分水岭模型结合起来

python - f-string 中的字典/集合理解

javascript - 变量传输 : Web Form that connects with PHP to Database