以上代码改成python2.7能实现的情况
时间: 2024-03-02 20:27:59 浏览: 57
适用python2.7
以下是将上述代码转换为 Python 2.7 的版本:
```python
import urllib
import json
serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?'
while True:
address = raw_input('Enter location: ')
if len(address) < 1 : break
url = serviceurl + urllib.urlencode({'sensor':'false', 'address': address})
print 'Retrieving', url
uh = urllib.urlopen(url)
data = uh.read()
print 'Retrieved',len(data),'characters'
try:
js = json.loads(str(data))
lat = js["results"][0]["geometry"]["location"]["lat"]
lng = js["results"][0]["geometry"]["location"]["lng"]
print 'lat',lat,'lng',lng
location = js['results'][0]['formatted_address']
print location
except:
continue
```
主要的区别在于:
1. 使用 `raw_input()` 代替 `input()`,因为后者会将用户输入的内容当做 Python 代码执行,有潜在的安全风险。
2. 使用 `urllib` 模块的不同方法和类,如 `urllib.urlencode()` 和 `urllib.urlopen()`。
3. `print` 语句需要加上括号。
4. `json.loads()` 返回的是 Unicode 字符串,需要使用 `str()` 转换成普通字符串再进行解析。
阅读全文