我想把数据放进excel工作表
我编写了以下代码:
data_dict ={}
data_dict =defaultdict(dict)
def try_to_int(arg):
try:
return int(arg)
except:
return arg
def main():
book4 = xlrd.open_workbook('./data/excel1.xlsx')
sheet4 = book4.sheet_by_index(0)
tag_list = sheet4.row_values(0)[1:]
for row_index in range(1, sheet4.nrows):
row = sheet4.row_values(row_index)[1:]
row = list(map(try_to_int, row))
value = dict(zip(tag_list, row))
data_dict[value['age']].update(value)
user2 = User.objects.filter(name=data_dict['name'])
print(user2)
if user2:
if data_dict['name'] == 'Tom':
user2.update(close_rate_under_300_ny = data_dict['300'],
close_rate_under_700_ny = data_dict['d700'],
close_rate_upper_700_ny = data_dictt['u700'])
elif data_dict['name'] == 'John':
user2.update(close_rate_under_300_eu = data_dict['300'],
close_rate_under_700_eu = data_dict['d700'],
close_rate_upper_700_eu = data_dict['u700'])
elif data_dict['name'] == 'Blear':
user2.update(close_rate_under_300_uk = data_dict['300'],
close_rate_under_700_uk = data_dict['d700'],
close_rate_upper_700_uk = data_dict['u700'])
else:
user2.update(close_rate_under_300_ch=data_dict['300'],
close_rate_under_700_ch = data_dict['d700'],
close_rate_upper_700_ch = data_dict['u700'])
main()
在print(user2)中,显示了许多<QuerySet []>
。所以我想可能无法获取user2。
此外,在if data_dict['name'] == 'Tom':
的if else语句中,user2没有更新
我的代码有什么问题?顺便说一下,data_dict
是正常的
我认为您使用的是自定义用户模型。因此,如果您给出用户类及其方法的定义,将会更加清楚
据我所知,我认为你需要
而不是:
filter()返回一个Queryset,其中包含满足指定筛选器的对象
所以你需要使用一个独特的用户属性,比如“username”或者“id”来获得一个用户。如果表中有多个同名用户,则using name将返回多个对象
要更新用户(因为您还没有给出更新的定义),请尝试:
而不是
相关问题 更多 >
编程相关推荐