首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python csv标头

python csv标头
EN

Stack Overflow用户
提问于 2009-11-17 11:59:56
回答 2查看 42.2K关注 0票数 18

我有一组csv标头,我正在尝试与上传匹配。这并不是真的有效。并非所有的头文件都是必需的--我只需要匹配文件中的内容即可。

代码语言:javascript
复制
reader = csv.DictReader(open(PathFile))
headers = reader.fieldnames
for header in sorted(set(headers)):
     if (header == 'ip') or (header == 'IP'):
         print  "IP found in Header"

在这种情况下,找不到IP。

代码语言:javascript
复制
for row in reader:
     if row.get('IP'):
         print  "IP found in Row"

再也找不到了。我在这个网站上搜索过--有:

代码语言:javascript
复制
IP = row.get('IP', None)

这也不起作用。

这是我用来测试的文件:

代码语言:javascript
复制
Email, IP, Name, City, State, zip, country, garbage
ghfddgf@gfgs.com, 34.4.34.34,Mr GH, chicago, il ,60601, us,erw ewr 
5t4g@fdsf.com, 34.45.23.34, Mr 5t,NY,NY,10101, us, er
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-17 12:39:34

根据您的编辑,您需要在逗号后使用skip the initial space

这应该可以做到:

代码语言:javascript
复制
>>> reader = csv.DictReader(open(PathFile),skipinitialspace=True)
票数 12
EN

Stack Overflow用户

发布于 2009-11-17 12:17:58

我不是很确定您想要实现什么,但是如果您只是想知道一些列是否在CSV中,并且您确定所有行都有相同的列,并且您想使用dict读取器,请使用以下代码:

代码语言:javascript
复制
s="""col1,col2,col3
ok,ok,ok
hmm,hmm,hmm
cool,cool,cool"""

import csv

reader = csv.DictReader(s.split("\n"))
print reader.fieldnames
for row in reader:
    for colName in ['col3', 'col4']:
        print "found %s %s"%(colName, colName in row)
    break

它的输出

代码语言:javascript
复制
found col3 True
found col4 False

或者像这样的东西也会起作用

代码语言:javascript
复制
reader = csv.reader(s.split("\n"))
columns = reader.next()
for colName in ['col3', 'col4']:
    print "found %s %s"%(colName, colName in columns)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1746489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档