如何在Django中逐行读取CSV文件?
我想把CSV文件的第一行作为字段名在Django中使用。这样可以吗?我想逐行读取这个CSV文件。
这是我的代码。
if request.FILES:
form = SalaryForm(request.POST, request.FILES)
if form.is_valid():
# request.session['salary'] = request.POST["salary"]
# salary = Salary.object.get(id=request.session['salary'])
print(request.FILES['fileUpload'].name)
csvfile = request.FILES['fileUpload'].read()
encoding = chardet.detect(csvfile)['encoding']
print (encoding)
if encoding is None:
encoding = 'CP932'
if encoding !='utf-8':
csvfile = csvfile.decode(encoding, 'replace').encode('utf-8')
reader = csv.reader(csvfile, delimiter=',')
但是现在读取器只能存储字母,不能存储单词。我的CSV文件是这样的:
'registration_number', 'name', 'kana', 'month', 'day', 'client_code', 'row', 'business_days', 'working_days', 'count', 'early_late_time', 'normal_time', 'over_time', 'holiday_time', 'night_time', 'working_time', 'basic_salary', 'regular_attendance', 'reqular_attendace_allowance', 'over_time_ratio', 'holiday_time_ratio', 'night_time_ratio', 'fare_day', 'fare', 'employment_insurance', 'personally', 'spouse', 'dependent', 'special_allowance', 'adjustment', 'income_tax', 'advanced_payment', 'suspense_payment', 'health_insurance', 'employment_pension', 'employment_insurance_amount', 'no_payment' "223","山野 薫","ヤマノ カオリ",1,10,"1101",1,17,16,,\1,,,,,\8,800,350,0,\1,\1,\0,,8300,1,0,9,0,9200,,2260,,,9557,15928,818,0 "018","波多野 未樹","ハタノ ミキ",1,15,"2301",1,21,20,,,,,,,\8,800,200,0,\1,\1,\0,300,6000,0,,,,,,3360,,,,,,0
我想用第一行作为我的字段名,因为每次上传的文件格式都不一样。
非常感谢!