找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2013|回复: 1

[求助] 求助,str字符串前缀有个b,只能加decode,但是还是去不到

1

主题

1

帖子

1

积分

贫民

积分
1
Leisure_ksj 发表于 2020-8-6 23:51:04 | 显示全部楼层 |阅读模式
try:
        parent = self._elemStack[-1][0]
        parentAttr = self._elemStack[-1][1]
        required, optional, canBeParent = self._validInfo[parent]
问题定位到如上所示,运行时报错如下:
  File "F:\PyCharmWorkplaces\pyaiml\aiml\AimlParser.py", line 280, in _characters
    required, optional, canBeParent = self._validInfo[parent]
KeyError: b'learn'
Process finished with exit code 1

可以看出,parent对应的是b'learn',工作目的是希望parent对应‘learn’,不要前缀b!
于是就想去掉b,做了一个小测试,代码如下:
parent = b'learn'
parent = parent.decode('utf-8')
print(parent)
运行结果为:learn
Process finished with exit code 0
于是修改为:
try:
        parent = self._elemStack[-1][0].decode('utf-8')
        parentAttr = self._elemStack[-1][1]
        required, optional, canBeParent = self._validInfo[parent]
接着报错:
  File "F:\PyCharmWorkplaces\pyaiml\aiml\AimlParser.py", line 278, in _characters
    parent = self._elemStack[-1][0].decode('utf-8')
AttributeError: 'str' object has no attribute 'decode'
Process finished with exit code 1

如果改为:
try:
        parent = self._elemStack[-1][0].encode('utf-8')
        parentAttr = self._elemStack[-1][1]
        required, optional, canBeParent = self._validInfo[parent]
错误如下:
  File "F:\PyCharmWorkplaces\pyaiml\aiml\AimlParser.py", line 280, in _characters
    required, optional, canBeParent = self._validInfo[parent]
KeyError: b'template'
Process finished with exit code 1

发现此时,parent对应为b'template'
卒。。。

希望大佬们帮我复活。
回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2020-8-7 12:51:44 | 显示全部楼层
str()转一下试试
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表