使用python将csv列转换为行
我正在尝试创建一个列表,该列表将从使用python将csv列转换为行,python,sql,csv,import-from-csv,Python,Sql,Csv,Import From Csv,我正在尝试创建一个列表,该列表将从gradebook.csv获取数据,并将其更改为其他格式 gradebook.csv有如下列,其中包含数据: { studentID , assignment1 , assignment2 , . . . assignmentN } { 2343 , , 34.2 , } 空单元格是没有提交的作业。带有数字的单元格表示等级。这些数据将进入以下格式的列表: { studentID
gradebook.csv
获取数据,并将其更改为其他格式
gradebook.csv有如下列,其中包含数据:
{ studentID , assignment1 , assignment2 , . . . assignmentN }
{ 2343 , , 34.2 , }
空单元格是没有提交的作业。带有数字的单元格表示等级。这些数据将进入以下格式的列表:
{ studentID , assignmentid , grade }
{ 2343 , assignment2 , 34.2 }
最终结果将是将这些数据放入sql server 2012中的sql表中。下面的代码符合我的要求,但仅适用于gradebook.csv
中的最后一行。我做错了什么
import csv
with open('gradebook.csv','rb') as g:
gr=csv.reader(g)
for row in gr:
if row[0]=='User ID':
pass
else:
studentid=row[0]
individualassignments=[]
everyone=[]
for element in row[1:]:
if element=='':
pass
else:
individualassignments.append(element)
individualassignments.append(studentid)
everyone.append(individualassignments)
对于外部
for
循环的每一次迭代,您似乎都清除了所有人
列表(通过设置所有人=[]
)。因此,只有csv文件中的最后一行才会出现在列表中
要修复此问题,您需要在循环之外声明所有人
import csv
with open('gradebook.csv','rb') as g:
gr=csv.reader(g)
everyone=[] # declare everyone here
for row in gr:
if row[0]=='User ID':
pass
else:
studentid=row[0]
individualassignments=[]
for element in row[1:]:
if element=='':
pass
else:
individualassignments.append(element)
individualassignments.append(studentid)
everyone.append(individualassignments)
对于外部
for
循环的每一次迭代,您似乎都清除了所有人
列表(通过设置所有人=[]
)。因此,只有csv文件中的最后一行才会出现在列表中
要修复此问题,您需要在循环之外声明所有人
import csv
with open('gradebook.csv','rb') as g:
gr=csv.reader(g)
everyone=[] # declare everyone here
for row in gr:
if row[0]=='User ID':
pass
else:
studentid=row[0]
individualassignments=[]
for element in row[1:]:
if element=='':
pass
else:
individualassignments.append(element)
individualassignments.append(studentid)
everyone.append(individualassignments)
我认为这不是复制品。另一个问题涉及到写入csv文件,而这个问题在将数据加载到列表中时遇到了问题。我觉得这不仅仅是换位,因为我将一行数据转换为多个等级的多行数据。至少,这是我的目标。可能的复制我不认为它是复制品。另一个问题涉及到写入csv文件,而这个问题在将数据加载到列表中时遇到了问题。我觉得这不仅仅是换位,因为我将一行数据转换为多个等级的多行数据。至少,这是我的目标。这是我一目了然错过的答案。这是我一目了然错过的答案。