json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1) error
json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1) error
f = urlopen('http://api.wunderground.com/api/API_KEY_HERE/geolookup/conditions/q/CA/LosAngeles.json')
str_response = f.readline().decode('utf-8')
parsed_json = json.loads(str_response)
location = parsed_json['location']['city']
temp_f = parsed_json['current_observation']['temp_f']
print ("Current temperature is:", temp_f, " degrees Fahrenheit")
precep = parsed_json['current_observation']['precep_today_in']
print("Current wind speed is:", precep)
wind = parsed_json['current_observation']['wind_mph']
print("Current wind speed is:", wind)
gust = parsed_json['current_observation']['wind_gust_mph']
print("Current wind gust speed:", gust)
f.close()
我看到了这个,但我不知道如何添加这段代码。
这是错误:
这是我要求的 API 部分:
relative_humidity "81%"
wind_string "Calm"
wind_dir "NNE"
wind_degrees 23
wind_mph 0
wind_gust_mph 0
wind_kph 0
wind_gust_kph 0
pressure_mb "1012"
pressure_in "29.87"
pressure_trend "-"
dewpoint_string "53 F (12 C)"
dewpoint_f 53
dewpoint_c 12
heat_index_string "NA"
heat_index_f "NA"
heat_index_c "NA"
windchill_string "NA"
windchill_f "NA"
windchill_c "NA"
使用 f.readline()
,您的代码只读取 API returns 的第一行,这恰好是一个空行,因此 JSON 编码器抱怨没有数据。
将 f.readline().decode('utf-8')
更改为 f.read().decode('utf-8')
,您应该可以解决此错误。
f = urlopen('http://api.wunderground.com/api/API_KEY_HERE/geolookup/conditions/q/CA/LosAngeles.json')
str_response = f.readline().decode('utf-8')
parsed_json = json.loads(str_response)
location = parsed_json['location']['city']
temp_f = parsed_json['current_observation']['temp_f']
print ("Current temperature is:", temp_f, " degrees Fahrenheit")
precep = parsed_json['current_observation']['precep_today_in']
print("Current wind speed is:", precep)
wind = parsed_json['current_observation']['wind_mph']
print("Current wind speed is:", wind)
gust = parsed_json['current_observation']['wind_gust_mph']
print("Current wind gust speed:", gust)
f.close()
我看到了这个
这是错误:
这是我要求的 API 部分:
relative_humidity "81%"
wind_string "Calm"
wind_dir "NNE"
wind_degrees 23
wind_mph 0
wind_gust_mph 0
wind_kph 0
wind_gust_kph 0
pressure_mb "1012"
pressure_in "29.87"
pressure_trend "-"
dewpoint_string "53 F (12 C)"
dewpoint_f 53
dewpoint_c 12
heat_index_string "NA"
heat_index_f "NA"
heat_index_c "NA"
windchill_string "NA"
windchill_f "NA"
windchill_c "NA"
使用 f.readline()
,您的代码只读取 API returns 的第一行,这恰好是一个空行,因此 JSON 编码器抱怨没有数据。
将 f.readline().decode('utf-8')
更改为 f.read().decode('utf-8')
,您应该可以解决此错误。