Python 3.x 在web2py中向数据库插入具有列表值的词典
您好,我有ajax向我的控制器发送数据,如下所示Python 3.x 在web2py中向数据库插入具有列表值的词典,python-3.x,web2py,Python 3.x,Web2py,您好,我有ajax向我的控制器发送数据,如下所示 我可以安全地将其转换为字典,其键值如下所示 {'transaction_-charge':['1100','1100','minu-amount':['10000','20001','max_-amount':['20000','5000'],'admin_-charge':['1400','3000'],'other_-charge':['80','70'] 我还有一个数据库表,其名称与上述数据集中的键名称匹配, 我想以这样一种方式将其发布到
我可以安全地将其转换为字典,其键值如下所示
{'transaction_-charge':['1100','1100','minu-amount':['10000','20001','max_-amount':['20000','5000'],'admin_-charge':['1400','3000'],'other_-charge':['80','70']
我还有一个数据库表,其名称与上述数据集中的键名称匹配,
我想以这样一种方式将其发布到数据库,即每个列表值创建一个新记录
在数据库中,
e、 g
注意我的表字段是动态的,如果用户添加其他费用类型,它们可能会更改,因此我不想显式添加这些记录,
web2py是否有足够聪明的方法来读取这些键,并将它们的列表值映射到某种循环中的表列,以便在数据库中创建len(ajax_data['key')
记录
谢谢嗯,web2py有一种很好的方法可以过滤字典,只包含与表字段匹配的键:\u filter\u fields 您需要将已发布的数据从一个目录列表转换为一个目录列表,例如:
data = [
{
'transaction_charge': '1100',
'min_amount': '10000',
'max_amount': '20000',
'admin_charge': '1400',
'other_charge': '80',
},
{
'transaction_charge': '1100',
...
}
]
然后可以循环、筛选和插入:
for row in data:
db.table_name.insert(**db.table_name._filter_fields(row))
Owkay我真的没想到这个,谢谢让我试试。
for row in data:
db.table_name.insert(**db.table_name._filter_fields(row))