我想将天气信息写入文件并使用其他脚本读取。目前我一直在写文件。 原始代码:
#!/usr/bin/env python3
from pprint import pprint
import pywapi
import pprint
pp = pprint.PrettyPrinter(indent=4)
steyregg = pywapi.get_weather_from_weather_com('AUXX0022')
pp.pprint(steyregg)
这给我这样的输出:
> { 'current_conditions': { 'barometer': { 'direction': u'falling
> rapidly',
> 'reading': u'1021.33'},
> 'dewpoint': u'0',
> 'feels_like': u'2',
> 'humidity': u'67',
> 'icon': u'32',
> 'text': u'W'}},.......
所以我试过
#!/usr/bin/env python3
from pprint import pprint
import pywapi
import pprint
pp = pprint.PrettyPrinter(indent=4)
steyregg = pywapi.get_weather_from_weather_com('AUXX0022')
with open('weather.txt', 'wt') as out:
pp.pprint(steyregg, stream=out)
但这会导致错误:
pprint() got an unexpected keyword argument 'stream'
我做错了什么?一旦它在另一个python脚本中工作,我怎么能读取wheater.txt?或者是否有更优雅的方式来捕获这样的数据并在其他地方使用它?
先谢谢
答案 0 :(得分:0)
PrettyPrinter
类的pprint
方法不接受stream
关键字参数。在此行中创建对象时提供流:
pp = pprint.PrettyPrinter(indent=4)
或使用函数 pprint.pprint
,它接受stream
关键字参数。
这就是错误的原因。一个更基本的问题是:为什么你使用pprint
模块,当问题的标题是“写和读xml Python 3”? pprint
模块不生成XML。有关使用python处理XML的一些想法,请参阅https://wiki.python.org/moin/PythonXml。
另请注意pywapi.get_weather_from_weather_com
返回python字典。该函数已将XML数据转换为字典,因此您不必读取任何XML。请参阅此example(如果您还没有)。
您可以将字典另存为JSON文件。
import json
with open('weather.txt', 'wt') as out:
json.dump(steyregg, out, indent=4)