Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于python中的给定数字创建多个词典?_Python_Django_Dictionary - Fatal编程技术网

如何基于python中的给定数字创建多个词典?

如何基于python中的给定数字创建多个词典?,python,django,dictionary,Python,Django,Dictionary,我有一个处理多个表单的HTML页面。 当我在django/python中发出post请求(即提交不同形式字段的值)时,我收到了以下词典: 表格-0-名称:杜邦 表格0-城市:巴黎 表1-名称:马克龙 表格1-城镇:马赛 从这本词典中,如何根据我收到的表单数量创建多个词典? 在本例中,我想创建两个名为(form_0和form_1)的字典,以便form_0: {姓名:杜邦,城镇:巴黎}和表格1:{姓名:马克龙,城镇:马赛}。对于这样的dict: a = {'form-0-Name':'Dupont'

我有一个处理多个表单的HTML页面。 当我在django/python中发出post请求(即提交不同形式字段的值)时,我收到了以下词典:

表格-0-名称:杜邦 表格0-城市:巴黎 表1-名称:马克龙 表格1-城镇:马赛

从这本词典中,如何根据我收到的表单数量创建多个词典? 在本例中,我想创建两个名为(form_0和form_1)的字典,以便form_0: {姓名:杜邦,城镇:巴黎}和表格1:{姓名:马克龙,城镇:马赛}。

对于这样的dict:

a = {'form-0-Name':'Dupont', 'form-0-Town':'Paris', 'form-1-Name':'Macron','form-1-Town':'Marseille'}
你可以这样做:

final = {}
for k,v in a.items():
    key = '_'.join(k.split('-')[:2])
    subkey = k.split('-')[-1]
    final.setdefault(key, {}).update({subkey:v})
输出:

final = {'form_0': {'Name': 'Dupont', 'Town': 'Paris'},
 'form_1': {'Name': 'Macron', 'Town': 'Marseille'}}
对于这样的dict:

a = {'form-0-Name':'Dupont', 'form-0-Town':'Paris', 'form-1-Name':'Macron','form-1-Town':'Marseille'}
你可以这样做:

final = {}
for k,v in a.items():
    key = '_'.join(k.split('-')[:2])
    subkey = k.split('-')[-1]
    final.setdefault(key, {}).update({subkey:v})
输出:

final = {'form_0': {'Name': 'Dupont', 'Town': 'Paris'},
 'form_1': {'Name': 'Macron', 'Town': 'Marseille'}}
做一个辅助功能:
def get_form_dict(form_dict):
字典=[]
form_strings=list(在form_dict.keys()中为x设置[x[0:6]))
对于形式_字符串中的i:
字典.append({x.split('-')[2]:v表示x,v表示形式为_dict.items(),如果i表示x})
返回元组(格式为字符串)
现在,假设您知道将得到多少形式:

#将django_dict命名为在应用程序中创建的dict
表单0,表单1=获取表单(django-dict)
制作一个辅助功能:
def get_form_dict(form_dict):
字典=[]
form_strings=list(在form_dict.keys()中为x设置[x[0:6]))
对于形式_字符串中的i:
字典.append({x.split('-')[2]:v表示x,v表示形式为_dict.items(),如果i表示x})
返回元组(格式为字符串)
现在,假设您知道将得到多少形式:

#将django_dict命名为在应用程序中创建的dict
表单0,表单1=获取表单(django-dict)

不要动态创建变量,在我想将这两个字典映射到另一个字典之后,使用容器,比如
列表
Juanpa。另一本词典是{Partie1:Texte1,Partie2:Texte2}与另外两本词典映射:form_0:{Name:Dupont,Town:Paris,Partie1:yes}和form_1:{Name:Macron,Town:Marseille;Partie2:No}。我认为使用字典检查这两个字典中是否有Parte1和Parte2会更容易,因为我将在text1和text2中使用这两个字典的项之后进入映射/替换阶段…不要动态创建变量,使用容器,如
列表
Juanpa,之后我想把这两本词典映射到另一本词典。另一本词典是{Partie1:Texte1,Partie2:Texte2}与另外两本词典映射:form_0:{Name:Dupont,Town:Paris,Partie1:yes}和form_1:{Name:Macron,Town:Marseille;Partie2:No}。我认为使用字典检查这两个字典中是否有Parte1和Parte2会更容易,因为我将在text1和text2中使用这两个字典的项目后进入映射/替换阶段…抱歉,我不知道表单的确切数量…抱歉,我不知道会出现什么情况提前填写表格的确切数量。。。