gpt4 book ai didi

python - 使用executemany将CSV数据插入django模型

转载 作者:行者123 更新时间:2023-11-29 12:47:57 25 4
gpt4 key购买 nike

我有一个 csv 文件,大约有 900000 行和 13 列,一切正常,直到 28445 行,但之后出现错误

ProgrammingError

Exception Value: not enough arguments for format string

我尝试通过打印行来检查列中是否有问题,但似乎没有任何问题。

['INDIA', '5', '1ST TIME MOTHER', 'PATNA', 'A2', 'BRAND DRIVERS', '', '', 'Is hard to find', '', '', '1', '0 to 12 months']

def upload(request):
if request.method == 'POST':
cursor = connection.cursor()
query = ''' INSERT INTO johnson_jnjusage (country,no_of_people_house,nursing_cnt,city,sec,bucket,category1,category2, final_category, responders, usageFrequency, base, child_age_group)
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) '''
x=[]
reader = csv.reader(request.FILES['csvData'],delimiter=',')
i = 0
for row in reader:
x.append(tuple(row))
if i>=5000:
cursor.executemany(query,tuple(x))
transaction.commit()
x=[]
i=0

i = i+1

cursor.close()
return HttpResponse( docfile.name + "'s data inserted into database successfully")

如果你们能帮我解决这个问题提前致谢

最佳答案

你可以做这样的事情。

#models.py
class JNJUsage(models.Model):
...

# views.py (where ever def upload is)
to_create = []

for i, row in enumerate(reader):
j = JNJUsage()
j.country = row['country']
j.no_of_people_house = row['no_of_people_house']
j.nursing_cnt = row['nursing_cnt']
j.city = row['city']
j.sec = row['sec']
j.bucket = row['bucket']
j.category1 = row['category1']
j.category2 = row['category2']
j.final_category = row['final_category']
j.responders = row['responders']
j.usageFrequency = row['usageFrequency']
j.base = row['base']
j.child_age_group = row['child_age_group']

to_create.append(j)

# If 900k is too much then you could consider something like this
if i % 10000 == 0:
JNJUsage.objects.bulk_create(to_create)
to_create = []

# Clean up the rest
JNJUsage.objects.bulk_create(to_create)

关于python - 使用executemany将CSV数据插入django模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25181640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com