博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

执行python脚本时,第102行报错如下:

 

UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
if content_dict['msg'] == '该号码还有相同类型请求未处理完,本次请求将稍后执行':

 

程序原文如下:

content_dict = json.loads(response.text)
if content_dict['msg'] =='该号码还有相同类型请求未处理完,本次请求将稍后执行':
    print('该号码还有相同类型请求未处理完,本次请求将稍后由系统自动重试,请勿再人工下发相同指令!')
exit()
else:
print('开关指令已发送...')



原因是 运行的python系统为2.6.6 版本, 字符串编码不一致造成的。

解决方法1: 使用python3 版本去运行,不会再报错。
解放方法2: 对要比比较的中文字符串进行解码成 utf-8格式, 程序如下改写:
      
content_dict = json.loads(response.text)
if content_dict['msg'] =='该号码还有相同类型请求未处理完,本次请求将稍后执行'.decode('utf-8'):
    print('该号码还有相同类型请求未处理完,本次请求将稍后由系统自动重试,请勿再人工下发相同指令!')
exit()
else:
print('开关指令已发送...')
或者如下使用变量:
content_dict = json.loads(response.text)
label='该号码还有相同类型请求未处理完,本次请求将稍后执行'
if content_dict['msg'] ==label.decode('utf-8'):
    print('该号码还有相同类型请求未处理完,本次请求将稍后由系统自动重试,请勿再人工下发相同指令!')
exit()
else:
print('开关指令已发送...')