Python“SyntaxError:文件中的非ASCII字符'\xe2'”

2024-05-17 16:23:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一些python代码,我正在接收标题中的错误消息,从搜索中这与字符集有关。

这是导致错误的一行

hc = HealthCheck("instance_health", interval=15, target808="HTTP:8080/index.html")

我不知道什么字符不在ANSI ASCII集中?此外,搜索“\xe2”不会再提供显示为哪个字符的信息。那一行的哪个字符引起了这个问题?

我也看到了一些解决这个问题的方法,但我不确定使用哪种方法。有人能澄清一下问题是什么吗(python不解释unicode,除非被告知这样做?),我怎么才能把它清理干净呢?

编辑: 这是所有错误的行

def createLoadBalancer():
    conn = ELBConnection(creds.awsAccessKey, creds.awsSecretKey)
    hc = HealthCheck("instance_health", interval=15, target808="HTTP:8080/index.html")
    lb = conn.create_load_balancer('my_lb', ['us-east-1a', 'us-east-1b'],[(80, 8080, 'http'), (443, 8443, 'tcp')])
    lb.configure_health_check(hc)
    return lb

Tags: 方法instancehchttpindexhtml错误conn
3条回答

或者你可以简单地使用:

# coding: utf-8

在.py文件的顶部

如果您只是尝试使用UTF-8字符,或者不关心它们是否在您的代码中,请将这一行添加到.py文件的顶部

# -*- coding: utf-8 -*-

你有一个游离的字节。你可以通过跑步找到它

with open("x.py") as fp:
    for i, line in enumerate(fp):
        if "\xe2" in line:
            print i, repr(line)

应该用程序名替换"x.py"。您将看到行号和违规行。例如,任意插入该字节后,我得到:

4 "\xe2        lb = conn.create_load_balancer('my_lb', ['us-east-1a', 'us-east-1b'],[(80, 8080, 'http'), (443, 8443, 'tcp')])\n"

相关问题 更多 >