0
我創建了以下腳本來將文件導入到我的django模型中。它工作正常,但只有在使用python 3.4時。導入CSV腳本 - 使python 2.7兼容
如何更改此腳本使其在2.7上運行?
感謝,
錯誤:
Traceback (most recent call last):
File "update_fromcsv.py", line 18, in <module>
l = list(csv.reader(open('test_data.csv', encoding='utf-8', errors='ignore')))
TypeError: 'errors' is an invalid keyword argument for this function
我的導入文件:
import sys, os
import django
sys.path.append('/srv/apps/stashdDB/code')
os.environ['DJANGO_SETTINGS_MODULE'] = 'stashdDB.settings'
django.setup()
import stashd.models as m
import csv
l = list(csv.reader(open('test_data.csv', encoding='utf-8', errors='ignore')))
Gender_CHOICES = {
'Male': 1,
'Female': 2,
'Unisex': 3,
}
Stock_CHOICES = {
'in stock': 1,
'low stock': 2,
'out of stock': 3,
'discountinued': 4
}
for i in l[1:]:
cat = m.Category.objects.get_or_create(category_name = i[4])[0]
prod = m.Product(
name = i[0],
link = i[1],
description = i[6],
brand = i[7],
gender = Gender_CHOICES[i[8]] if i[8] in Gender_CHOICES else 3,
store = m.Store.objects.get_or_create(store_name = i[2])[0]
)
prod.save()
var = m.Variation(
product = prod,
variation = "default"
)
var.save()
img = m.Image(
variation = var,
image = i[5]
)
img.save()
size = m.Size(
variation = var
)
size.save()
price = m.Price(
variation = var,
price = float(i[3])
)
等....
謝謝。這一直奏效。這是非常緩慢的壽。有什麼原因可以通過我的代碼告訴? – Yian
@Yian no。它是2.7中從csv文件讀取的標準。從你的程序的不完整列表中很難看出它的下降速度。 – LetzerWille
該代碼爲一個whilte工作,然後給我這個錯誤:'返回codecs.utf_8_decode(輸入,錯誤,真) UnicodeDecodeError:'utf8'編解碼器無法解碼位置156字節0xe9:無效連續字節' – Yian