Python 从google finance中用逗号分隔一个长字符串
我能够使用python3从googlefinance下载数据,现在我正在尝试用python处理这些数据 输出似乎不遵循纯逗号分隔的格式,因此我不确定如何在这个平台上使用csv模块Python 从google finance中用逗号分隔一个长字符串,python,comma,finance,Python,Comma,Finance,我能够使用python3从googlefinance下载数据,现在我正在尝试用python处理这些数据 输出似乎不遵循纯逗号分隔的格式,因此我不确定如何在这个平台上使用csv模块 import urllib.request url = 'https://www.google.com/finance/historical?output=csv&q=abc' response = urllib.request.urlopen(url) data1 = response.read()
import urllib.request
url = 'https://www.google.com/finance/historical?output=csv&q=abc'
response = urllib.request.urlopen(url)
data1 = response.read()
datatop=data1[1:20]
print(datatop)
for line in datatop:
print(line)
print(datatop)
输出如下所示:
b'\xbb\xbfDate,Open,High,Lo'
187
191
68
97
116
101
44
79
112
101
110
44
72
105
103
104
44
76
111
b'\xbb\xbfDate,打开,高,低'
我希望能够访问股票数据,但我似乎遗漏了一些东西。我对python比较陌生,但我在这方面发现的类似问题似乎并没有解决我的问题
看起来输出被转换为每个字符的某种代码,但不确定是什么
以前有人遇到过这种情况,或者知道如何做到这一点吗
提前谢谢
v/r数据似乎有一个utf-8 BOM头BOM\U UTF8=b'\xef\xbb\xbf' 但在python中,从0开始的切片列表将删除第一个字节:
datatop=data1[1:20]
你应该做:
datatop=data1[:20]
要摆脱它并将字节响应解码为字符串,只需使用bytes.decode:
结果:
Date,Open,High,Lo
现在您可以将这些行馈送到csv模块。这是utf-8编码的错误 试试这个
import urllib.request
url = 'https://www.google.com/finance/historical?output=csv&q=abc'
response = urllib.request.urlopen(url)
mydata = response.decode("utf-8")
data1 = mydata.read()
datatop=data1[:20]
#don't chuck out the first line
for line in datatop:
print(line)
print(datatop)
这将解决您的错误
import urllib.request
url = 'https://www.google.com/finance/historical?output=csv&q=abc'
response = urllib.request.urlopen(url)
mydata = response.decode("utf-8")
data1 = mydata.read()
datatop=data1[:20]
#don't chuck out the first line
for line in datatop:
print(line)
print(datatop)