【发布时间】:2020-10-05 01:32:58
【问题描述】:
我正在尝试使用 Python 使用 Here's Rest API 获取数据,但收到以下错误,
1132
1133 # Non-ASCII characters should have been eliminated earlier
-> 1134 self._output(request.encode('ascii'))
1135
1136 if self._http_vsn == 11:
UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 86: ordinal not in range(128)
我的 python 代码是 -
df = pd.read_csv(r"data.csv", encoding='utf8', sep=",",
engine="python")
def GoogPlac(auth_key,lat,lon):
location = str(lat) + ',' + str(lon)
MyUrl = ('https://places.ls.hereapi.com/places/v1/browse'
'?apiKey=%s'
'&in=%s'
';r=2000'
'&cat=restaurant&pretty') % (auth_key,location)
#grabbing the JSON result
response = urllib.request.urlopen(MyUrl)
jsonRaw = response.read()
jsonData = json.loads(jsonRaw)
return jsonData
# Function call
df['response'] = df.apply(lambda x: GoogPlac(auth_key,x['latitude'],x['longitude']), axis=1)
我想避免错误并继续我的 API 提取
【问题讨论】:
-
你必须通过
ignore。前 -request.encode('ascii', 'ignore') -
究竟哪一步应该消除非ASCII字符?
-
我不确定应该在代码的哪个位置添加编码语句。
标签: python dataframe ascii rest