gpt4 book ai didi

python - 在 csv 文件中单独读取列名

转载 作者:IT老高 更新时间:2023-10-28 21:48:17 27 4
gpt4 key购买 nike

我有一个包含以下列的 csv 文件:

身份证、姓名、年龄、性别

后面是上面列的很多值。我正在尝试单独读取列名并将它们放入列表中。

我正在使用 Dictreader,这给出了正确的详细信息:

with open('details.csv') as csvfile:
i=["name","age","sex"]
re=csv.DictReader(csvfile)
for row in re:
for x in i:
print row[x]

但我想要做的是,我需要使用输入 csv 自动解析列列表(在上述情况下为“i”),而不是将它们硬编码在列表中。

with open('details.csv') as csvfile:

rows=iter(csv.reader(csvfile)).next()
header=rows[1:]
re=csv.DictReader(csvfile)
for row in re:
print row
for x in header:

print row[x]

这会报错

Keyerrror:'name'

在行打印行[x]。我哪里错了?是否可以使用 Dictreader 获取列名?

最佳答案

虽然您已经有一个可接受的答案,但我想我会为其他对不同解决方案感兴趣的人添加此答案-

一个实现可能如下:

import csv

with open('C:/mypath/to/csvfile.csv', 'r') as f:
d_reader = csv.DictReader(f)

#get fieldnames from DictReader object and store in list
headers = d_reader.fieldnames

for line in d_reader:
#print value in MyCol1 for each row
print(line['MyCol1'])

在上面,d_reader.fieldnames 返回标题列表(假设标题在顶行)。这允许...

>>> print(headers)
['MyCol1', 'MyCol2', 'MyCol3']

如果您的标题在第 2 行(最上面的行是第 1 行),您可以执行以下操作:

import csv

with open('C:/mypath/to/csvfile.csv', 'r') as f:
#you can eat the first line before creating DictReader.
#if no "fieldnames" param is passed into
#DictReader object upon creation, DictReader
#will read the upper-most line as the headers
f.readline()

d_reader = csv.DictReader(f)
headers = d_reader.fieldnames

for line in d_reader:
#print value in MyCol1 for each row
print(line['MyCol1'])

关于python - 在 csv 文件中单独读取列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28836781/

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