def main():
client = ##client_here
db = client.brazil
rio_bus = client.tweets
result_cursor = db.tweets.find()
first = result_cursor[0]
ordered_fieldnames = first.keys()
with open('brazil_tweets.csv','wb') as csvfile:
csvwriter = csv.DictWriter(csvfile,fieldnames = ordered_fieldnames,extrasaction='ignore')
csvwriter.writeheader()
for x in result_cursor:
print x
csvwriter.writerow({k: str(x[k]).encode('utf-8') for k in x})
#[ csvwriter.writerow(x.encode('utf-8')) for x in result_cursor ]
if __name__ == '__main__':
main()
基本上問題是,鳴叫包含一串在葡萄牙的字符。我試圖通過將所有內容編碼爲unicode值來解決此問題,然後再將它們放入要添加到行中的字典中。但是這不起作用。任何其他想法來格式化這些值,以便csv閱讀器和dictreader可以閱讀它們?UnicodeEncodeError:「ASCII」編解碼器無法編碼的字符U「 XFA」在位置42:在範圍序數不(128)
哪一行出錯? – tdelaney
'str(x [k])'看起來很奇怪......如果'x [k]'是unicode在ascii範圍之外,你會得到錯誤。 – tdelaney
第14行。csvwriter.writerow部分 –