gpt4 book ai didi

Python编码问题

转载 作者:太空狗 更新时间:2023-10-30 01:45:11 25 4
gpt4 key购买 nike

所以,我已经阅读了很多关于 Python 编码和其他内容的信息 - 也许还不够,但我已经为此工作了 2 天,但仍然一无所获 - 但我仍然遇到麻烦。我会尽量说清楚。最主要的是,我正在尝试删除所有重音符号和字符,例如 #、!、%、&...

问题是,我使用此调用在 Twitter 搜索 API 上进行查询搜索:

query = urllib2.urlopen(settings.SEARCH_URL + '?%s' % params)

然后,我调用一个方法 (avaliar_pesquisa()) 来根据输入的标签(或术语)评估我得到的结果:

dados = avaliar_pesquisa(simplejson.loads(query.read()), str(tags))

avaliar_pesquisa() 上,发生以下情况:

def avaliar_pesquisa(dados, tags):
resultados = []
# Percorre os resultados
for i in dados['results']
resultados.append({'texto' : i['text'],
'imagem' : i['profile_image_url'],
'classificacao' : avaliar_texto(i['text'], tags),
'timestamp' : i['created_at'],
})

请注意评估推文文本的 avaliar_texto()。以下几行确实存在问题:

def avaliar_texto(texto, tags):
# Remove accents
from unicodedata import normalize
def strip_accents(txt):
return normalize('NFKD', txt.decode('utf-8'))

# Split
texto_split = strip_accents(texto)
texto_split = texto.lower().split()

# Remove non-alpha characters
import re
pattern = re.compile('[\W_]+')
texto_aux = []
for i in texto_split:
texto_aux.append(pattern.sub('', i))
texto_split = texto_aux

拆分在这里并不重要。问题是,如果我在最后一个方法中打印 var texto 的类型,我可能会得到 str 或 unicode 作为答案。如果文本上有任何重音,它就像 unicode 一样。因此,我在运行最多接收 100 条推文作为答案的应用程序时遇到此错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 17: ordinal not in range(128)

对于以下文本:

Text: Agora o problema é com o speedy. type 'unicode'

有什么想法吗?

最佳答案

参见 this page .

decode() 方法将应用于 str 对象,而不是 unicode 对象。给定一个 unicode 字符串作为输入,它首先尝试使用 ascii 编解码器将其编码为 str,然后解码为 utf-8,但失败了。

尝试 return normalize('NFKD', unicode(txt) )

关于Python编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7199179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com