运行python脚本时,我得到了-而不是连字符

时间:2019-04-26 12:37:23

标签: python unicode

我正在尝试修复python脚本,每当标题中带有连字符的标题显示为–€,错误为

KeyError: 'text here \xe2\x80\x93 text here'

脚本抓取与API进行了交互,并且已将连字符设置为保护区域的开头,因此该连字符实际上不是连字符,而是保护区域的开始,因此我将它们放在了代码中,但是在运行脚本时并不能完全识别它们。我已经在脚本顶部有了#--编码:utf-8--。

这当然不是完整的脚本,但这是我将“-”修改为进行此项工作所需的任何内容。

--编码:utf-8--

team_list = ["text here – text here",
             "text here – text here"] 

这是运行时产生的东西:

REQUEST @:text here – text here
STATUS: <Response [200]>>

Traceback (most recent call last):
  File "filepath here", line 102, in <module>
    request(url_list[i], team_list[i], team_data[i], team_count[i], team_name[i])
  File "filepath here", line 66, in request
    if rnamedata["data"][team]["incident"]["data"][0] == None:
KeyError: 'text here \xe2\x80\x93 text here'

我希望它返回带连字符的符号,而不是—或\ xe2 \ x80 \ x93

1 个答案:

答案 0 :(得分:1)

字节序列b“ \ xe2 \ x80 \ x93”是Unicode短划线,U + 2013。字符为“ –”,看起来几乎与ascii连字号减号“-” U + 002D相同,但并非完全相同。破折号较宽。

您收到密钥错误,因为密钥中包含连字符,但您的数据没有。

放置-编码:UTF-8-位于程序顶部对程序读取数据的方式没有影响。这是向解释器指示您的源代码的编码。而且无论如何,UTF-8是默认设置。