在ScraperWiki上编写刮板时,当我试图保存utf8编码的字符串时,我反复收到这样的消息:
UnicodeDecodeError('utf8', ' the \xe2...', 49, 52, 'invalid data')通过试用和UnicodeDecodeError,我最终发现ScraperWiki数据存储似乎需要Unicode。
因此,我现在从UTF-8解码,并在保存到数据存储之前立即将所有内容转换为Unicode:
try:
for k, v in record.items():
record[k] = unicode(v.decode('utf-8'))
except UnicodeDecodeError:
print "Record %s, %s has encoding error" % (k,v)
scraperwiki.datastore.save(unique_keys=["ref_no"], data=record)这避免了错误,但这是合理的吗?有人能确认ScraperWiki数据存储支持哪种编码吗?
谢谢!
发布于 2011-02-14 17:32:15
数据存储区需要UTF-8字节字符串或Unicode字符串。
此示例显示了在Python中保存英镑货币符号的两种方法:
http://scraperwiki.com/scrapers/unicode_test/
在其他语言中也是如此。
出于调试目的,您可以将非UTF-8/Unicode字符串打印到控制台,它不能理解的字符将被剥离。
https://stackoverflow.com/questions/4984712
复制相似问题