我有这样的代码声明:
def add_names(req, names, firstnames, middlenames, lastnames, genders, e_mails, phone_numbers, locations, indata):
data = []
for a in range(len(names)):
nxt = {"name": names[a], "profile_id": indata["profile_id"], "firstname": firstnames[a], "middlename": middlenames[a], "lastname": lastnames[a],
"e_mail": e_mails[a], "phone_number": phone_numbers[a], "location": locations[a], "sex": genders[a],
"user_id": indata["user_id"], "updated_by": indata["username"]}
cpnxt = nxt
del cpnxt['profile_id'], cpnxt['user_id'], cpnxt['updated_by']
nxt.update({"jsondata": cpnxt})
data.append(nxt)
qs = "insert into persons (id, name, user_id, profile_id, firstname, middlename, lastname, e_mail, phone_number, location, sex, updated_by) values "
qs += "(DEFAULT, %(name)s, %(user_id)s, %(profile_id)s, %(firstname)s, %(middlename)s, %(lastname)s, %(e_mail)s, %(phone_number)s, %(location)s, %(sex)s,"
qs += " %(updated_by)s) returning id"
res = db_add_list(req, qs, data)
return res
在这里,基本上,我将列表值作为参数,然后将列表值放入称为
nxt{}
的json字典中,并通过"qs"
函数使用查询db_add_list()
将它们添加到数据库中。现在,我想做的是;我想将json字典添加到
nxt{}
字典中。我的字典将是nxt{}
字典的子集,其中仅涉及nxt{}
的某些值。我想用这段代码来做到这一点,但是我得到了一个奇怪的输出:
nxt = {'e_mail': '', 'firstname': 'John', 'jsondata': {'e_mail': '', 'firstname': 'John', 'jsondata': {'e_mail': '', 'firstname': 'John', 'jsondata': {'e_mail': '', 'firstname': 'John', 'jsondata': {'e_mail': '', 'firstname': 'John', 'jsondata': {'e_mail': '', 'firstname': 'John', 'jsondata': {...}, 'lastname': 'Smith', 'location': '', 'middlename': '', 'name': 'John Smith', 'phone_number': '', 'sex': 'M'}, 'lastname': 'Smith', 'location': '', 'middlename': '', 'name': 'John Smith', 'phone_number': '', 'sex': 'M'}, 'lastname': 'Smith', 'location': '', 'middlename': '', 'name': 'John Smith', 'phone_number': '', 'sex': 'M'}, 'lastname': 'Smith', 'location': '', 'middlename': '', 'name': 'John Smith', 'phone_number': '', 'sex': 'M'}, 'lastname': 'Smith', 'location': '', 'middlename': '', 'name': 'John Smith', 'phone_number': '', 'sex': 'M'}, 'lastname': 'Smith', 'location': '', 'middlename': '', 'name': 'John Smith', 'phone_number': '', 'sex': 'M'}
我该如何做呢?
最佳答案
只需更新您的nxt
词典并向其中添加新的子集词典。
nxt.update({"new_dic": my_new_dic})