Python 3.x 在web2py中向数据库插入具有列表值的词典

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'] 我还有一个数据库表,其名称与上述数据集中的键名称匹配, 我想以这样一种方式将其发布到

您好,我有ajax向我的控制器发送数据,如下所示

我可以安全地将其转换为字典,其键值如下所示

{'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))