我正在使用GoogleAppEngine开发一个小应用程序,它使用QuoraRSS提要。有一个表单,根据用户输入的内容,它将输出与输入相关的链接列表。现在,应用程序可以很好地处理一个字母的查询,如果两个字母的单词之间用“-”分隔,则大多数应用程序都可以处理两个字母的单词。但是,对于三个字母的单词和一些两个字母的单词,我得到以下错误:
UnicodeDecodeError:'ascii'编解码器不能解码字节0xe2在位置48:序数不在范围内(128)
这是我的Python代码:
import os
import webapp2
import jinja2
from google.appengine.ext import db
import urllib2
import re
template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape=True)
class Handler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
return t.render(params)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
class MainPage(Handler):
def get(self):
self.render("formrss.html")
def post(self):
x = self.request.get("rssquery")
url = "http://www.quora.com/" + x + "/rss"
content = urllib2.urlopen(url).read()
allTitles = re.compile('<title>(.*?)</title>')
allLinks = re.compile('<link>(.*?)</link>')
list = re.findall(allTitles,content)
linklist = re.findall(allLinks,content)
self.render("frontrss.html", list = list, linklist = linklist)
app = webapp2.WSGIApplication([('/', MainPage)], debug=True)
以下是html代码:
<h1>Quora Live Feed</h1><br><br><br>
{% extends "rssbase.html" %}
{% block content %}
{% for e in range(1, 19) %}
{{ (list[e]) }} <br>
<a href="{{ linklist[e] }}">{{ linklist[e] }}</a>
<br><br>
{% endfor %}
{% endblock %}
Python可能试图用ascii编解码器将Unicode字符串解码成正常的str,但失败了。当你处理Unicode数据时,你需要解码它:
content = content.decode('utf-8')
问题内容: 在Digital Ocean 512MB Droplet上执行时,出现错误。 任何想法可能是什么原因造成的?我正在运行Ubuntu 12.04 64位。 [完全错误] 问题答案: 看起来gcc由于内存不足而被杀死(请参阅@Blender的评论),从而暴露了pip中的错误。它在登录时将字节串和Unicode混合在一起,从而导致: 如果使用最新版本可以复制;您可以报告该错误。
问题内容: 当我尝试将其串联时,当字段包含“ñ”或“´”时,出现UnicodeDecodeError。如果包含“ñ”或“´”的字段是最后一个,则不会有任何错误。 任何想法?非常感谢! 问题答案: 您正在编码为UTF-8,然后 重新 编码为UTF-8。Python仅在首先再次 解码 为Unicode时才能这样做,但它必须使用默认的ASCII编解码器: 不要继续编码;将编码保留为UTF-8 到最后一个
问题内容: 我正在尝试使用其中包含一些非标准字符的超大型数据集。根据工作规范,我需要使用unicode,但我感到困惑。(而且很可能做错了。) 我使用以下方式打开CSV: 然后,我尝试使用以下代码对其进行编码: 我正在对lat和lng以外的所有内容进行编码,因为它们需要发送到API。当我运行程序以将数据集解析为可以使用的数据时,将获得以下Traceback。 我想我应该告诉你我正在使用python
问题内容: 在我的其中一台计算机上,当我使用Google Apps引擎或Django时出现错误。 例如: app.yaml demas1252c.py foto.html 错误信息: 当我在Django中使用静态文件(不带gae)时,我遇到了非常类似的错误(具有不同的堆栈)。 我试图找到错误的原因,并向mimetypes.py添加了代码: 然后,我在控制台中收到下一条消息: 在注册表HKCR /
在数字海洋512MB液滴上执行时,我得到错误。 知道是什么引起的吗?我正在运行Ubuntu 12.04 64位。 [完全错误]
问题内容: 我想解析我的XML文档。所以我将我的XML文档存储如下 现在我的下面是我的代码 我低于错误 问题答案: 看来您要达到UTF-8字节顺序标记(BOM)。尝试使用此Unicode字符串并提取出BOM: 我使用而不是因为在您的情况下您可能多次出现BOM表,这可能是由于串联的文件内容引起的。
问题内容: 我在新构建的计算机上全新安装了Ubuntu。我刚刚使用apt-get安装了python- pip。现在,当我尝试点安装Numpy和Pandas时,出现以下错误。 我已经在SO和Google的很多地方看到过提到此错误,但是我一直找不到解决方案。有人提到这是一个错误,有些线程已经死了……这是怎么回事? 问题答案: 我最近有这个确切的问题,并使用 这会将numpy添加到系统python解释器
我得到了Unicodeer错误: “ascii”编解码器无法对73-74位置的字符进行编码:序号不在范围内(128) python3 defult编码不是“UTF-8”吗?? 当我运行这个脚本时 实际上是蟒蛇。5.2 当我打印身体的类型,它是str 但是错误似乎是asciicode而不是python2的Unicode thx