将字符串的各个部分分配给它们自己的变量



我一直在使用天气API,并希望将返回的API数据中的值分配给某些变量。例如,我想将下面API数据中的lonlattemphumidity值分配给Python代码中它们自己的变量,因此以下是我的结果:

lon = -87.74
lat = 41.9
temp = 46.49
humidity = 61

这是我从API请求中收到的数据:

b'{"coord":{"lon":-87.74,"lat":41.9},"weather": 
[{"id":800,"main":"Clear","description":"clear 
sky","icon":"01n"}],"base":"stations","main": 
{"temp":46.49,"feels_like":35.37,"temp_min":45,"temp_max":48.2,"pressure":1018,"humidity":61},"visibility":10000,"wind":{"speed":13.87,"deg":210,"gust":20.8},"clouds":{"all":1},"dt":1606605601,"sys":{"type":1,"id":4861,"country":"US","sunrise":1606568201,"sunset":1606602118},"timezone":-21600,"id":4904381,"name":"Oak Park","cod":200}'

如何使这些数据可用?我如何确保将正确的数据分配给正确的变量?

您需要使用json模块解析数据,json模块将数据转换为可以轻松导航的dict。

data = b'{"coord":{"lon":-87.74,"lat":41.9},"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"base":"stations","main":{"temp":46.49,"feels_like":35.37,"temp_min":45,"temp_max":48.2,"pressure":1018,"humidity":61},"visibility":10000,"wind":{"speed":13.87,"deg":210,"gust":20.8},"clouds":{"all":1},"dt":1606605601,"sys":{"type":1,"id":4861,"country":"US","sunrise":1606568201,"sunset":1606602118},"timezone":-21600,"id":4904381,"name":"Oak Park","cod":200}'
import json
data = json.loads(data.decode())
lon = data["coord"]["lon"]
lat = data["coord"]["lat"]
temp = data["main"]["temp"]
humidity = data["main"]["humidity"]

最新更新