[英]Python skip header row from request response
我正在查询服务以获取 csv 数据,我想通过跳过标题信息代码将此 csv 提取附加到另一个文件中 -
response = requests.get('http://myservice.com&format=csv')
with open('out.csv', 'a', new like='') as f:
writer = csv.writer(f)
for line in response.iter_lines():
next(line)
writer.writerow(line.decode('utf-8').split('|'))
尝试了上述但我收到错误
'bytes' 对象不是迭代器
response.iter_lines()
是迭代器, lines
是迭代的值。 所以调用next()
没有多大意义。
你可以:
iter_lines = response.iter_lines()
next(iter_lines, None)
for line in iter_lines:
writer.writerow(line.decode('utf-8').split('|'))
您也可以尝试直接读入csv.DictReader
,例如:
response = requests.get('http://myservice.com&format=csv')
with open('out.csv', 'a') as f:
reader = csv.DictReader(response.text.splitlines(), delimiter='|')
writer = csv.DictWriter(f, reader.fieldnames)
writer.writerows(reader)
试试
response =
requests.get('http://myservice.com&format=csv')
with open('out.csv', 'a', new like='') as f:
writer = csv.writer(f)
rows = response.iter_lines()
next(rows)
for line in rows:
writer.writerow(line.decode('utf-8').split('|'))
rows
是需要跳过标题的迭代器,而line
是每行读取的实际内容。
for
循环简单地遵循迭代协议,即
iter
获得一个迭代器(一个迭代器返回自身,在这种情况下)next
直到引发StopIteration
异常
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.