Jea*_*ean 3 python encoding urllib character-encoding python-3.x
我尝试访问带有重音的网址,但它不起作用:
#!/usr/bin/python3.3
# -*- coding: utf-8 -*-
import urllib.request
response = urllib.request.urlopen("http://nominatim.openstreetmap.org/search.php?city=Lévis&format=json")
content = response.read()
print(content)
Run Code Online (Sandbox Code Playgroud)
当我执行此代码时,我有这个错误作为回报
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 22: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
所以我试试这个
response = urllib.request.urlopen("http://nominatim.openstreetmap.org/search.php?city=Lévis&format=json".encode("UTF-8"))
Run Code Online (Sandbox Code Playgroud)
但仍然是一个错误
AttributeError: 'bytes' object has no attribute 'timeout'
Run Code Online (Sandbox Code Playgroud)
你有什么想法我错了吗?
你需要转义你的查询参数,比如@Cairnarvon说:
import urllib.parse
city = 'Lévis'
query = "city=%s&format=json" % (urllib.parse.quote(city),)
response = urllib.request.urlopen("http://nominatim.openstreetmap.org/search.php?" + query)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1324 次 |
| 最近记录: |