繁体   English   中英

在python2.7中处理UnicodeEncodeError

[英]Handle UnicodeEncodeError in python2.7

我有以下代码:

    for index, row in df_out.iterrows():
        yield {
               'CustomerName': str(row['CustomerName'])
              }

我得到了UnicodeEncodeError:

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

如何处理该零件以避免该错误?

str(row['CustomerName'])

如果您可能在python2中处理非ASCII文本,则可以

str(some_text)

通常是个坏主意,因为如果some_text包含非ASCII字符,则会收到UnicodeEncodeError 正确的代码是

unicode(some_text)

因为unicode()不会尝试将文本编码为ASCII。

但是鉴于此代码

for index, row in df_out.iterrows():
    yield {
           'CustomerName': str(row['CustomerName'])
          }

row['CustomerName']很可能已经是一个unicode对象,因此在其上调用unicode将是多余的。 这可能会起作用:

for index, row in df_out.iterrows():
    yield {
           'CustomerName': row['CustomerName']
          }

总结一下:删除str调用。 如果这样不起作用,请尝试将str替换为unicode

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM