利用Python讀取json數據並求數據平均值


    要做的事情:一共十二個月的json數據(即12個json文件),json數據的一個單元如下所示。讀取這些數據,並求取各個(100多個)城市年、季度平均值。

{
"time_point": "2014-01",
"area": "***",
"aqi": "71",
"pm2_5": "47",
"pm10": "69",
"rank": "7"
}

    我通過兩個步驟來實現這個事情,讀取json並導入sqlite,按需要查找數據庫數據並計算平均值。先導入數據庫這個舉動有些顯得多余,但是也讓數據井然有序地處理。

    遍歷文件夾12個json文件用os.walk。在解析了json數據(例如,j = json.load(f))后,發現這個json數據是分兩層的,不過只要像dict一樣索引就可以了,無非是索引兩層(例如,data = j['rows'],pm25 = data[i]['pm2_5'],其中i是json單元個數遍歷)。接着就導入數據庫,第一部分做完。

    從數據庫取值然后計算倒沒什么,就是取值rows = conn.execute("select ****") for row in rows 遍歷一下。有一個異常不得不提,最后平均值插入表時出現了:“sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.”          在Stack Overflow找到回答:connection =sqlite3.connect(...) connection.text_factory = str。也沒深究,問題解決了。涉及到中文很容易出現這個毛病。

 

        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM