Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将原始天气美化为更具可读性的结果_Python_Python 3.x_Openweathermap - Fatal编程技术网

Python 将原始天气美化为更具可读性的结果

Python 将原始天气美化为更具可读性的结果,python,python-3.x,openweathermap,Python,Python 3.x,Openweathermap,我正在使用pyowm模块创建一个天气应用程序,我成功地获得了xyz地点的温度,但问题是它对其他人没有太大吸引力,因为它只是原始结果,我想让它可读。下面是代码及其输出 import pyowm owm = pyowm.OWM('myapikey') observation = owm.weather_at_place('London,uk') w = observation.get_weather() result=w.get_temperature('celsius') print (resul

我正在使用
pyowm
模块创建一个天气应用程序,我成功地获得了xyz地点的温度,但问题是它对其他人没有太大吸引力,因为它只是原始结果,我想让它可读。下面是代码及其输出

import pyowm
owm = pyowm.OWM('myapikey')
observation = owm.weather_at_place('London,uk')
w = observation.get_weather()
result=w.get_temperature('celsius')
print (result)
#the output is {'temp_min': 17.0, 'temp': 19.64, 'temp_kf': None, 'temp_max': 21.8}
所以现在我想要的是它应该是可读的

place:London
temperature:17 degrees
maximum:21.8
minimum:17.0

我知道正则表达式,但我不确定是否可以用它来实现,因为无论我怎么努力,它都会给我带来错误。

你不需要正则表达式,正则表达式用于检测字符串中的模式等等。您想要的是用数据构造一个字符串。有很多很多方法可以做到这一点,但最简单的方法可能是

'\n'.join(key + ':' + str(v) for k, v in result.items())

如果要为字典中的值使用不同于给定键的标签(例如
max
而不是
temp\u max
),则必须定义第二个字典,将
结果
键映射到一组新的标签,并使用
zip
或其他方法组合这两种结构。

您不需要正则表达式,正则表达式用于检测字符串中的模式等等。您想要的是用数据构造一个字符串。有很多很多方法可以做到这一点,但最简单的方法可能是

'\n'.join(key + ':' + str(v) for k, v in result.items())

如果要为字典中的值使用不同于给定键的标签(例如
max
而不是
temp\u max
),则必须定义第二个字典,将
结果
键映射到一组新的标签,使用
zip
或其他方法组合这两种结构。

不要使用正则表达式-这是JSON,Python有一个内置的模块为您解析它。@jornsharpe您确定它是JSON吗-看起来库已经做了任何事情,并将其放入Python
dict
。@JonClements哦,是的,然后可能是
ast.literal\u eval
,但仍然不是regex!不要使用正则表达式——这是JSON,Python有一个内置模块为您解析它。@JonSharpe您确定它是JSON——看起来库已经做了任何事情,并将其放入Python
dict
。@JonClements哦,是的,那么可能
ast.literal\u eval
,但仍然不是regex!对不起,你能告诉我怎么实施吗?谢谢你,也很抱歉给你留了一条生路,不要直接把
result
传给
print()
把那行代码传给
print()
像这样:
print('\n'.join(key+':'+str(v)代表k,v在result.items())
我非常感谢你,我只有最后一个问题,当我输入temperature而不是key时,如何输入多个语句bcoz?它只显示所有项目的温度,而不是最高温度和最低温度。很抱歉,我在A**中遇到了麻烦。我找到了一种简单的方法,请查看打印(结果['temp'])它所做的是找到“temp”旁边的变量,所以我认为这可能是“最简单的方法”“是的,您正在访问字典中的一个条目,该条目对应于键
temp
。很抱歉,您能告诉我如何实现此功能吗?”?谢谢你,也很抱歉给你留了一条生路,不要直接把
result
传给
print()
把那行代码传给
print()
像这样:
print('\n'.join(key+':'+str(v)代表k,v在result.items())
我非常感谢你,我只有最后一个问题,当我输入temperature而不是key时,如何输入多个语句bcoz?它只显示所有项目的温度,而不是最高温度和最低温度。很抱歉,我在A**中遇到了麻烦。我找到了一种简单的方法,请查看打印(结果['temp'])它所做的是找到“temp”旁边的变量,所以我认为这可能是“最简单的方法”。是的,您正在访问字典中的单个条目,对应于键
temp