问候热心的小伙伴们:
我正在调试一个与 twitter-api 集成的程序,其目的是搜索给定半径内的特定推文并将它们返回到 csv 文件中。它可以工作....但有时会遇到“ UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 0: ordinal not in range(128) ”错误,但我已经在我的代码中进行了调整让它忽略来自其范围之外的 twitter 的 Unicode 数据。
那么为什么有时仍然会出现该错误?
下面是使用注释中给出的测试输入运行它的代码:
import urllib2, json, pprint, codecs, unicodedata, csv
## test coordinate input: 29.762778,-95.383056
## test radius 10
## test query: tebow
##Initial user input
city = raw_input("Please enter to 6 decimal places the city\ncoordinates to be searched ex. lat,long: ")
radius = raw_input("Please enter the numeric value of the\nradius in miles you'd like to search ex. 10: ")
term= raw_input("Please enter the search term you wish to query ex. tebow: ")
u = urllib2.urlopen('http://search.twitter.com/search.json?q='+term+'&geocode='+city+','+radius+'mi&page=1&rpp=20')
datares = json.load(u)
##pprint.pprint(datares)
with codecs.open('Geotweets.csv',mode='w', encoding='utf-8',errors='ignore') as cache:
writer = csv.writer(cache)
for tweet in datares['results']:
writer.writerow([tweet['text'], tweet['location'], tweet['created_at'], tweet['from_user']])