我有以下代码:
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'])
答案 0 :(得分:1)
如果您有可能在python2中处理非ASCII文本,请执行
str(some_text)
通常是个坏主意,因为如果UnicodeEncodeError
包含非ASCII字符,则会得到一个some_text
。正确的代码是
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
。