我有一个数组如下:
row = [u'Arun DC', 4.0, 34.0, 76.0, 223.52941176470588, u'yes', 0.0, '', '', '', '', u'yes', '', u'yes', u'yes', u'yes', u'no', u'\xa37.50 - \xa310 not clear what this is for', u'\xa37.50 - \xa310 not clear what this is for', '', u'\xa37.50 - \xa310 not clear what this is for', u'\xa37.50 - \xa310 not clear what this is for', '', '', '', '', u'no water on sites', '', u'1st years rent free', '']
Run Code Online (Sandbox Code Playgroud)
我想将其写入CSV文件,但是我收到以下错误:
writer.writerow(row)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
所以我先尝试编码,但这给了我一个错误,因为我不能编码浮动项:
writer.writerow([i.encode('latin-1') for i in row])
AttributeError: 'int' object has no attribute 'encode'
Run Code Online (Sandbox Code Playgroud)
有什么想法以一种巧妙的方式解决这个问题吗?
[x.encode('latin-1') if isinstance(x, unicode) else x
for x in row]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2256 次 |
| 最近记录: |