補充上篇部落格提到的json檔案資料轉換成csv檔案。作為資料分析最常用檔案型別json與csv,出於一定情況下,我們需要將json中字典型別的資料,轉換為csv儲存,這又用到python強大的pandas模組了。我們一步一步來。
按照我的理解,json像是乙個字典檔案,整乙個檔案的資料儲存按照字典的格式進行,即key:values,大的資料一般是多層巢狀字典。故,對json的資料提取,就要分別對json的key,values資料進行提取。如下的乙個json檔案(test_json.json):
json檔案的內容如下:
簡單來看,就是乙個字典資料
按照思路,我們要將json檔案的keys資料以及values值提取,如下
import pandas as pd
import json
filename = './files/test_json.json'
with open(filename,'r') as f_ojb:
json_data = json.load(f_ojb,)
print(json_data)
檢視讀取的結果:
將鍵f_key內的字典值分別提取出來,存放在json_keys,json_values裡:
json_fkey = json_data['f_key']
json_keys = [str(json_) for json_ in json_fkey.keys()]
json_values = [int(j_values) for j_values in json_fkey.values()]
接下來我們就要使用pandas對資料存為csv檔案,首先,pandas處理的資料型別是dataframe,而dataframe是由series資料組合成的,即我們需要將key值與values值先轉換成series型別,如下:
keys = pd.series(json_keys,name='key') #這裡使用pandas的series方法對資料進行封裝,並命名列名
values = pd.series(json_values,name='values')
接下來對兩條series資料合併成dataframe:
df_data = pd.concat([keys,values],axis=1) #concat是將多條series資料合併成dataframe,axis引數決定合併的軸向,1代表從第二維度合併,0代表第一維度。
最後一步,將dataframe數值寫到csv檔案中:
df_data.to_csv('./files/test_json_to_csv.csv',index=none) #index引數代表不將序列號填入檔案,dataframe預設是會生成序列號的
檢視結果:
生成了csv檔案,檢視檔案內容:
這樣就完成了json檔案到csv檔案的轉換
pandas 小記 pandas 讀寫xml檔案
import xml.etree.elementtree as et import pandas as pd defiter records records 遍歷每個節點的生成器 param records return for record in records temp dict 儲存節點key...
利用rdiff backup實現遠端備份檔案
本文主要參考 上介紹的安裝方法。a配置 a端為centos5.5 系統,開啟ssh服務,已安裝librsync 系統預設安裝 並按照上邊鏈結的方法安裝好rdiff backup。b配置 b端為windows 7 旗艦系統。1.安裝cygwin,參考 2.利用cygwin編譯並安裝librsync,在...
pandas讀取json檔案報錯
昨天還執行的好好的 今天就報錯。如下 import pandas as pd import json result result.json df pd.read json result print df.category.value counts 先是報了個 valueerror expected ...