python json格式和csv文件轉換


python json格式和csv文件轉換

上代碼

 1 import csv
 2 import json
 3 
 4 '''
 5 json格式示例 
 6 [{ "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" }]
 7 '''
 8 #file:json to csv
 9 def transcsv(jsonpath, csvpath):
10     json_file = open(jsonpath, 'r', encoding='utf8')
11     csv_file = open(csvpath, 'w', newline='')
12     #讀文件
13     ls = json.load(json_file)  #將json格式的字符串轉換成python的數據類型,解碼過程
14     data = [list(ls[0].keys())]  # 獲取列名,即key
15     for item in ls:
16         data.append(list(item.values()))  # 獲取每一行的值value
17     #寫入文件
18     for line in data:
19         csv_file.write(",".join(line) + "\n")  # 以逗號分隔一行的每個元素,最后換行 fw.close() #關閉csv文件
20     #關閉文件
21     json_file.close()
22     csv_file.close()
23 #file:csv to json
24 def transjson(jsonpath, csvpath):
25     fw = open(jsonpath, 'w', encoding='utf8')   # 打開csv文件
26     fo = open(csvpath, 'r', newline='')    # 打開csv文件
27 
28     ls = []
29     for line in fo:
30         line = line.replace("\n", "")  # 將換行換成空
31         ls.append(line.split(","))  # 以,為分隔符
32     #print(ls)
33     #寫入
34     for i in range(1, len(ls)):  # 遍歷文件的每一行內容,除了列名
35         ls[i] = dict(zip(ls[0], ls[i]))  # ls[0]為列名,所以為key,ls[i]為value,
36         # zip()是一個內置函數,將兩個長度相同的列表組合成一個關系對
37 
38     json.dump(ls[1:], fw, sort_keys=True, indent=4)
39     #將Python數據類型轉換成json格式,編碼過程
40     #默認是順序存放,sort_keys是對字典元素按照key進行排序
41     #indet參數用語增加數據縮進,使文件更具有可讀性
42 
43     # 關閉文件
44     fo.close()
45     fw.close()
46 
47 if __name__ == '__main__':
48     #transcsv('./testcase/my.json', './testcase/my.csv')
49     transjson('./testcase/write.json', './testcase/my.csv')

 

my.json文件內容:

[{ "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" }]

 


免責聲明!

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



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