我制作了一个python程序,使用omdbapihttp://www.omdbapi.com/获取电影/电视节目信息
我在打印电视节目的运行年份时出错了。下面是发生这种情况的代码部分:
keys = ['Title', 'Year', 'imdbRating', 'Director', 'Actors', 'Genre', 'totalSeasons']
def jsonContent(self):
payload = {'t':self.title}
movie = requests.get(self.url, params = payload)
return movie.json()
def getInfo(self):
data = self.jsonContent()
for key, value in data.items():
if key in keys:
print key.encode('utf-8') + ' : ' + value.encode('utf-8')
例如,如果我搜索“我是怎么认识你妈妈的”,结果如下:
^{pr2}$我该怎么解决这个问题?在
在打印之前,您正在将Unicode文本编码为UTF-8:
但是,您的控制台或终端没有配置为解释UTF-8。它被发送字节,然后根据不同的编解码器显示字符。在
您的
^{pr2}$value
包含一个\u2013
或{a1}字符,该字符编码为UTF-8,即3个字节E2 80 93
,而您的终端似乎将其解码为Windows代码页437:请重新配置您的控制台或终端,或将^{} environment variable 设置为使用错误处理程序:
:replace
部分将告诉Python编码为cp437,但对它无法处理的字符使用占位符。你会得到一个问号:注意,在所有这些示例中,我必须显式地编码到CP437。您不需要,因为Python已经检测到您的配置,并将自动为您执行此操作。只需坚持直接打印Unicode。在
另一种方法是使用^{} package 将非ASCII字符替换为近似值;它将用ASCII破折号替换en破折号:
相关问题 更多 >
编程相关推荐