【问题标题】:How to read _csv.reader object?如何读取 _csv.reader 对象?
【发布时间】:2021-12-07 17:54:03
【问题描述】:

我有一个 _csv.reader 类型的对象,它是由从 API 收集数据的函数创建的。我将如何打开和解析这种类型的对象,以便在 Pandas 等中进行处理?

对象最初是这样创建的:

obj = csv.reader(io.BytesIO(Results.encode('ascii', 'replace')), delimiter='\t')

【问题讨论】:

  • 是的,但它不起作用。尝试遍历对象给出:错误:迭代器应返回字符串,而不是字节(您是否以文本模式打开文件?)
  • 好的,错误信息似乎很容易解释......为什么你要传递 io.BytesIO 对象而不是 io.StringIO? reader 对象需要字符串,而不是字节
  • 什么是_csv.reader?从前缀看,它看起来像一个私有属性。
  • 感谢@juanpa.arrivillaga 更改为 stringIO 工作(见编辑)。对 BytesIO 对象做同样的事情会很高兴但不是必需的
  • 我回滚了您的最新编辑(文本仍可从revision history 获得。非常欢迎您将其发布为答案(然后可能最终accept it)但您的问题应该仍然是一个问题。

标签: python csv text ascii csvreader


【解决方案1】:

更改为 StringIO 有效。我相信由于编码而使用了 BytesIO,可能是为了忽略希腊字符?

以 io.StringIO(Results) 作为文件: csv_reader = csv.reader(文件,分隔符='\t') 对于 csv_reader 中的行: 打印(行)

【讨论】:

  • "我相信由于编码的原因使用了 BytesIO,可能是为了忽略希腊字符?"不,几乎可以肯定,您正在查看一个旧示例(Python 2)
猜你喜欢
  • 2019-01-09
  • 1970-01-01
  • 2021-03-02
  • 2014-02-26
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多