【发布时间】:2018-09-29 07:10:30
【问题描述】:
我想从 csv 文件中检索数据,但我的硬件 (RFID) 输出为我提供了同一员工的两个不同条目用于时间和超时 WorkNames.csv
在这有两个条目,我只希望 models.py Employee 类中的一名员工只有一行
所以请在我的 METHOD1 中提供帮助,建议一些代码可以将 2 行合二为一,同时将数据传输到 sqlite
或
通过建议一些代码从 output.csv 导入数据来帮助 METHOD2
方法一:我使用import.py来导入数据。数据被导入到 sqlite 但双条目
import os
import sys
import csv
from datetime import datetime
project_dir='catalog'
sys.path.append(project_dir)
os.environ['DJANGO_SETTINGS_MODULE']='locallibrary.settings'
import django
django.setup()
from catalog.models import employee1
data=csv.reader(open('locallibrary/WorkNames.csv'),delimiter=',')
i=1
from datetime import datetime
for row in data:
if row[0]== '':
break
else:
Employee1=employee1()
Employee1.Date=row[0]
Employee1.Name=row[1]
Employee1.Number=row[2]
if row[3] =="" or row[3]=='Time IN':
Employee1.Time_IN='00:00:00 AM'
else:
Employee1.Time_IN=str(row[3])
if row[4] =="" or row[4]=='Time OUT':
Employee1.Time_OUT='00:00:00 AM'
else:
Employee1.Time_OUT=str(row[4])
Employee1.save()
**方法2:但是为了在行中获得超时时间,我生成了一个新文件**output.csv
文件生成正确,但数据没有从 csv 导入到 sqlite
import os
import sys
import csv
from datetime import datetime
project_dir='catalog'
sys.path.append(project_dir)
os.environ['DJANGO_SETTINGS_MODULE']='locallibrary.settings'
import django
django.setup()
from catalog.models import employee1
data=csv.reader(open('locallibrary/WorkNames.csv'),delimiter=',')
from datetime import datetime
lines=list(data)
r=5
c=5
for i in range(r):
for j in range(1,5):
if lines[0][j]=="":
break
if lines[i][2] == lines[j][2]:
lines[j][3]=lines[i][3]
r=5
c=5
for i in range(r):
for j in range(1,5):
if lines[i][3]!="" and lines[i][4]=="":
lines[i][3]='00:00:00 AM'
lines[i][4]='00:00:00 AM'
break
writer = csv.writer(open('locallibrary/output.csv', 'w'))
for r in lines:
writer.writerow(r)
open('locallibrary/output.csv').close()
data1=csv.reader(open('locallibrary/WorkNames.csv'),delimiter=',')
i=1
for row in data:
if row['Date']=='':
break
else:
Employee1=employee1()
Employee1.Date=row['Date']
Employee1.Name=row['Name']
Employee1.Number=row['Number']
Employee1.Time_IN=row['Time IN']
Employee1.Time_OUT=row['Time OUT']
Employee1.save()
所以请在我的 METHOD1 中提供帮助,建议一些代码可以将 2 行合二为一,同时将数据传输到 sqlite
或
通过建议一些代码从 output.csv 导入数据来帮助 METHOD2
【问题讨论】:
-
@Ralf 你能帮我解决这个问题吗?
标签: django django-models django-forms django-templates django-views