加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

试图在Python 3中拆分字符串,得到’str’不支持缓冲区接口

发布时间:2020-12-20 11:45:03 所属栏目:Python 来源:网络整理
导读:所以我试图从网站获取数据并将其解析为一个对象.数据由竖线(“|”)分隔.但是,当我使用.split(‘|’)分割我的字符串时,我得到了 TypeError: 'str' does not support the buffer interface 我还在尝试学习Python.我已经对这个错误进行了一些挖掘,但是我发现的
所以我试图从网站获取数据并将其解析为一个对象.数据由竖线(“|”)分隔.但是,当我使用.split(‘|’)分割我的字符串时,我得到了

TypeError: 'str' does not support the buffer interface

我还在尝试学习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])

解决方法

rawStockList中的项实际上是byte类型,因为response.read()返回它,因为它不需要知道编码.您需要通过使用编码对其进行解码将其转换为正确的字符串.假设文件是??用utf8编码的,你需要这样的东西:

for i in rawStockList:
    stockInfo = i.decode('utf8').split('|')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读