在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 数据存储支持什么编码?
谢谢!