【发布时间】:2020-10-12 19:17:49
【问题描述】:
从 csv 导入数据时,我意识到如果第一行不是标题,则会触发此错误
list indices must be integers or slices, not str
first_name,last_name,email,password,role
Noak,Larrett,nlarrett0@ezinearticles.com,8sh15apPjI,Student
Duffie,Milesap,dmilesap1@wikipedia.org,bKNIlIWVfNw,Student
仅当第一行是标题时才有效
first_name,last_name,email,password,role
Noak,Larrett,nlarrett0@ezinearticles.com,8sh15apPjI,Student
Duffie,Milesap,dmilesap1@wikipedia.org,bKNIlIWVfNw,Student
...
我尝试覆盖 before_import 以删除任何空白行
def before_import(self, dataset, using_transactions, dry_run, **kwargs):
indexes = []
for i in range(0, len(dataset)):
row = ''.join(dataset[i])
if row.strip() == '':
indexes.append(i)
for index in sorted(indexes, reverse=True):
del dataset[index]
return dataset
这适用于所有行,除了应该始终包含标题的第一行,否则将引发错误。
【问题讨论】:
-
我见过这个。为什么不直接在导入(手动)之前删除空行?
-
因为导入数据的是用户,我只想让 Python 自动处理这个问题。
标签: python django django-import-export