python读单行文本求平均值_利用Python读取json数据并求数据平均值
要做的事情:一共十二個月的json數(shù)據(jù)(即12個json文件),json數(shù)據(jù)的一個單元如下所示。讀取這些數(shù)據(jù),并求取各個(100多個)城市年、季度平均值。
{
"time_point": "2014-01",
"area": "***",
"aqi": "71",
"pm2_5": "47",
"pm10": "69",
"rank": "7"
}
我通過兩個步驟來實現(xiàn)這個事情,讀取json并導(dǎo)入sqlite,按需要查找數(shù)據(jù)庫數(shù)據(jù)并計算平均值。先導(dǎo)入數(shù)據(jù)庫這個舉動有些顯得多余,但是也讓數(shù)據(jù)井然有序地處理。
遍歷文件夾12個json文件用os.walk。在解析了json數(shù)據(jù)(例如,j = json.load(f))后,發(fā)現(xiàn)這個json數(shù)據(jù)是分兩層的,不過只要像dict一樣索引就可以了,無非是索引兩層(例如,data = j['rows'],pm25 = data[i]['pm2_5'],其中i是json單元個數(shù)遍歷)。接著就導(dǎo)入數(shù)據(jù)庫,第一部分做完。
從數(shù)據(jù)庫取值然后計算倒沒什么,就是取值rows = conn.execute("select ****") for row in rows 遍歷一下。有一個異常不得不提,最后平均值插入表時出現(xiàn)了:“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。也沒深究,問題解決了。涉及到中文很容易出現(xiàn)這個毛病。
總結(jié)
以上是生活随笔為你收集整理的python读单行文本求平均值_利用Python读取json数据并求数据平均值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓能硬改的手机机型_手机后盖材质,金属
- 下一篇: linux 防火墙 ftp,RedHat