1. 程式人生 > 其它 >json檔案生成excel

json檔案生成excel

技術標籤:python

根據目錄下的所有json檔案生成excel

import json
import os

import pandas as pd
class download():
      def __init__(self):
            self.bool = True
      def transcsv(self, jsondata, csvpath):
            csv_file = open(csvpath, 'a', newline='', encoding='utf-8')
            # 讀檔案
            ls =
json.loads(jsondata) # 將json格式的字串轉換成python的資料型別,解碼過程 if ls: if self.bool: data = [list(ls[0].keys())] # 獲取列名,即key self.bool = False else: data = [] for item in ls:
data.append(map(str, list(item.values()))) # 獲取每一行的值value # 寫入檔案 for line in data: csv_file.write(repr("@@".join(line))[1:-1] + "\n") # 以逗號分隔一行的每個元素,最後換行 fw.close() #關閉csv檔案 # 關閉檔案
csv_file.close() # 匯出指定表資料 def download_data(self,file_dir,csvpath): for root, dirs, files in os.walk(file_dir): for i in files: path = os.path.join(root,i) with open(path,encoding='utf-8') as f: self.transcsv(f.read(), csvpath) df = pd.read_csv(csvpath, encoding='utf-8', sep="@@", engine='python',skipinitialspace=True) writer = pd.ExcelWriter(csvpath.split('.')[0] + '.xlsx', engine='xlsxwriter', options={'strings_to_urls': False}) df.to_excel(writer) writer.close() c = download() c.download_data('d:/test/','d:/test.csv')