
利用Python實現json格式轉換為csv文件格式
前言
本文是學校的課程設計,這里我沒有用封裝好的json庫來實現,而是把讀進來的文件當一個字符串來處理,核心函數其實是python的eval()類型轉換函數。
什么是 JSON?
我們要考慮到json格式下key-value對的結構是無序的。JSON:JavaScript Object Notation(JavaScript 對象表示法),是存儲和交換文本信息的語法。有點類似 XML,JSON 比 XML 更小、更快,更易解析,同時刪除了不必要的元素信息。
讀取文件
首先讀取文件數據到data_str, 這里注意文件編碼,否則會出現亂碼。
with
觀察一下讀取的json內容
print
json文件格式
- 對象可以包含多個 key/value(鍵/值)對。
- key 必須是字符串,value 可以是合法的 JSON 數據類型(字符串, 數字, 對象, 數組, 布爾值或 null)。
- key 和 value 中使用冒號(:)分割。
- 每個 key/value 對使用逗號(,)分割。
替換元素
對json文件做一個替換,這里這樣替換是有問題的,因為從前向后掃描的時候只有在引號外的元素才需要替換,可以對掃過的引號數量取模實現。
data_str
類型函數
判斷當前的字符串屬于哪個類型
def
head函數的實現
遍歷獲得json的所有key作為csv的表頭
data_head
body內容的轉換
data_head_dict保存轉換后CSV的body內容
data_head_dict
寬度的拓展,這里實現的時候比較暴力。解決方案如下: 1. 最后自底向上刪空行 2. 處理head的時候加tag記錄行號
for
看一下表的內容是否正確
for
輸出CSV文件
with
以utf-8編碼格式輸出文件
with
5 rows × 116 columns