2014-01-12 93 views
0

我想寫天氣信息到一個文件,並閱讀它與另一個腳本。目前我堅持寫入文件。 原始代碼:寫入和讀取字典Python 3

#!/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' 

什麼時我做錯了?我怎樣才能讀wheaters.txt一旦它在另一個python腳本中工作?還是有一種更優雅的方式來捕獲像這樣的數據並在其他地方使用它?

由於提前

回答

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) 
+0

我不需要xml,我認爲這樣做,我只想在另一個腳本中保存和可用的天氣信息。只是尋找一種方法來做到這一點。 – PieOneer

+0

好的。我會谷歌如何處理詞典。將看看json – PieOneer

+0

我添加了關於JSON的一個筆記給答案。 –