Python 从google finance中用逗号分隔一个长字符串

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()

我能够使用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()     

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)