UnicodeDecodeError:'ascii'编解码器无法解码位置 284 中的字节 0x93:序数不在范围内(128)[重复]

Posted

技术标签:

【中文标题】UnicodeDecodeError:\'ascii\'编解码器无法解码位置 284 中的字节 0x93:序数不在范围内(128)[重复]【英文标题】:UnicodeDecodeError: 'ascii' codec can't decode byte 0x93 in position 284: ordinal not in range(128) [duplicate]UnicodeDecodeError:'ascii'编解码器无法解码位置 284 中的字节 0x93:序数不在范围内(128)[重复] 【发布时间】:2017-10-29 07:32:12 【问题描述】:
from textblob import TextBlob as tb
from sqlalchemy import create_engine
import pandas as pd

首先我使用 sqlalchemy 创建引擎作为engine=create_engine("mysql+mysqldb://root:ja@localhost:3306/listing")

然后我使用 pandas read_sql 命令从数据库中读取数据。

df=pd.read_sql('select locationId,text from location_reviews',engine)

尝试将文本列从字符串转换为 textblob UnicodeDecodeError: 'ascii' codec can't decode byte 0x93 in position 284: ordinal not in range(128) 时出现此错误 我正在使用 sqlalchemy 和 df = pd.read_sql(query,engine) 从 sql 读取数据。 然后我尝试使用

转换 textblob 中的文本列
df['text']=df.text.apply(lambda x: tb(x))

并得到上述错误。

【问题讨论】:

您的 sql 包含非 ascii 数据。您是如何创建数据框的?展示您的代码(或者更好的是,一个简化的 working 示例)。哪一行给你错误?显示堆栈跟踪。问题可能出在您创建数据框时吗? 【参考方案1】:

这意味着您在尝试转换为 TextBlob 的文本中有一个 unicode 字符。您可能想尝试确保没有 unicode 字符偷偷溜过。

试试unidecode,类似以下内容:

from unidecode import unidecode
df['text']=df.text.apply(lambda x: tb(unidecode(x)))

【讨论】:

无法返回相同的错误 那么错误可能发生在代码中的这一点之前。你能找出错误发生在哪里吗?您可能希望将 unidecode 应用于整个 df。 使用***.com/questions/18649512/…解决了问题

以上是关于UnicodeDecodeError:'ascii'编解码器无法解码位置 284 中的字节 0x93:序数不在范围内(128)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

UnicodeDecodeError: 'ascii' 编解码器无法在位置解码字节 0xec

Python/Flask:UnicodeDecodeError/UnicodeEncodeError:“ascii”编解码器无法解码/编码

UnicodeDecodeError:“ascii”编解码器无法解码位置 1 的字节 0xef

如何避免 Redshift Python UDF 出现 UnicodeDecodeError ascii 错误?

python2 当中 遇到 UnicodeDecodeError UnicodeDecodeError: 'ascii' codec can't decode byte 0xe

UnicodeDecodeError:'ascii'编解码器无法解码位置 284 中的字节 0x93:序数不在范围内(128)[重复]