sil*_*eff 3 python string typeerror python-3.x
所以我试图从网站获取数据并将其解析为一个对象.数据由竖线("|")分隔.但是,当我使用.split('|')分割我的字符串时,我得到了
TypeError: 'str' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)
我还在尝试学习Python.我已经对这个错误进行了一些挖掘,但是我发现的每个例子都与发送或接收数据有关,并且有很多我不熟悉的术语.一个解决方案说使用.split(b'|'),但是这会以某种方式将我的字符串变成一个字节并阻止我在最后一行打印它.
以下是我的代码.您将提供的任何帮助将不胜感激!
with urllib.request.urlopen('ftp://ftp.nasdaqtrader.com/SymbolDirectory/nasdaqtraded.txt') as response:
html = response.read()
rawStockList = html.splitlines()
stockList = []
for i in rawStockList:
stockInfo = i.split('|')
try:
stockList.append(Stock(stockInfo[1], stockInfo[2], stockInfo[5], stockInfo[10], 0))
except IndexError:
pass
print([str(item) for item in stockList])
Run Code Online (Sandbox Code Playgroud)
里面的项目rawStockList实际上是类型byte,response.read()因为它不需要知道编码的返回.您需要通过使用编码对其进行解码将其转换为正确的字符串.假设文件是用utf8编码的,你需要这样的东西:
for i in rawStockList:
stockInfo = i.decode('utf8').split('|')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5216 次 |
| 最近记录: |