请求 VS Urllib 2

Requests VS Urllib 2

在 Urllib 2 中有一个 "read" 参数被调用。我正在尝试使用 requests 在 python 3 中使用这个脚本,但我仍然是新手,所以我被绊倒了。我有一种感觉,一旦我明白了这一点,我可能需要想出别的办法来让它发挥作用。我正在尝试获取华氏度的当前温度。

import requests
import json
f = requests.get('http://api.wunderground.com/api/mykey/geolookup/conditions/q/LA/tickfaw.json')
json_string = f.json()
parsed_json = json.loads(f)
location = parsed_json[str('location')][str('city')]
temp_f = parsed_json['current_observation']['temp_f']
print("Current temperature in %s is: %s" % (location, temp_f))

我收到回溯错误:

Traceback (most recent call last):
 File "C:/Users/jerem/PycharmProjects/webscraper/scratch.py", line 5, in <module>
parsed_json = json.loads(f)
 File "C:\Users\jerem\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'Response'

Process finished with exit code 1

Requests 已有获取方法 json,请改用该方法。将相关行改为:

parsed_json = f.json()

玩过代码后,我让它工作并打印当前温度。通过取出变量 parsed_json = json.loads(f) ,我认为它是 urllib2 的副产品。如果我错了,请告诉我,但它正在工作。

import requests
import json
f = requests.get('http://api.wunderground.com/api/mykey/geolookup/conditions/q/LA/tickfaw.json')
json_string = f.json()
location = json_string[str('location')][str('city')]
temp_f = json_string['current_observation']['temp_f']
print("Current temperature in %s is: %s" % (location, temp_f))