从URL检索数据但收到错误:迭代器应返回字符串,而不是字节

时间:2017-09-07 01:10:29

标签: python python-3.x iterator

我试图在这个github上运行这个python脚本。

https://gist.github.com/lebedov/f09030b865c4cb142af1

该脚本从Google检索股票报价。

当我运行函数stock = get_google_finance_intraday("AAPL")时,我收到错误_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)

我追溯到导致错误的代码行。

这是第39行。

reader = csv.reader(page.content.splitlines())

我使用的是python v3.6。我怀疑代码运行在python v2而不是v3。

3 个答案:

答案 0 :(得分:1)

python 3要求您将字节数组(文件中的数据)解码为实际字符串

data = data.decode('utf8')

您希望在将它们传递给csv解析器之前在拉出的行上执行此操作。

答案 1 :(得分:0)

现在似乎盘中工作只是返回每日价格 试试这个: https://www.google.com/finance/getprices?i=60&p=10d&f=d,o,h,l,c,v&df=cpct&q=IBM

答案 2 :(得分:0)

但是以下的DOES适用于盘中价格: https://finance.google.com/finance/getprices?q=IBM&p=1d&i=60&f=d,o,h,l,c,v 请注意网址的更改。