混合类型数据编码?
我有一个数组,内容如下:
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', '']
我想把它写入一个CSV文件,但我遇到了以下错误:
writer.writerow(row)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 0: ordinal not in range(128)
所以我尝试先对它进行编码,但这样又出错了,因为我无法对浮点数进行编码:
writer.writerow([i.encode('latin-1') for i in row])
AttributeError: 'int' object has no attribute 'encode'
有没有什么好的方法可以解决这个问题呢?
3 个回答
1
[('%s'%a).encode('latin-1') for a in row]
这个代码会返回一个字符串的列表。你可以用它把数据写入CSV文件。
1
[i.encode('latin-1') if isinstance(i, unicode) else i for i in row]
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
8
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后对这些数据进行操作。这个过程可能会涉及到不同的步骤,比如读取数据、处理数据和保存数据等。
当我们在写代码的时候,可能会遇到一些问题,比如代码运行不正常或者出现错误。这时候,我们需要仔细检查代码,看看哪里出了问题。常见的错误包括拼写错误、语法错误或者逻辑错误。
为了帮助我们解决这些问题,很多程序员会在网上寻找答案,比如在StackOverflow这样的网站上提问或者查找相关的解决方案。这些平台上有很多经验丰富的程序员,他们会分享自己的经验和解决方法。
总之,编程就像是解决一个个小谜题,我们需要耐心和细心,才能找到正确的答案。
[x.encode('latin-1') if isinstance(x, unicode) else x
for x in row]