Json2xlsx

Создает новые Excel из данных json файлов (быстро). Путь к файлам запрашивает через диалоговое окно
 avatar
user_2065311
python
8 months ago
3.4 kB
4
Indexable
Never
import pandas as pd
import json
import os
import tkinter as tk
from tkinter import filedialog

def process_json_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        json_data = json.load(file)

    for entry in json_data:
        for key in ['purpose', 'right', 'address']:
            if key in entry and isinstance(entry[key], dict):
                for subkey, value in entry[key].items():
                    entry[f"{key}_{subkey}"] = value
                del entry[key]

    df = pd.DataFrame(json_data)
    return df

def main():
    root = tk.Tk()
    root.withdraw()

    folder_path = filedialog.askdirectory(title="Выберите папку с JSON файлами")
    if not folder_path:
        return

    for filename in os.listdir(folder_path):
        if filename.lower().endswith('.json'):
            file_path = os.path.join(folder_path, filename)
            df = process_json_file(file_path)
            excel_path = os.path.splitext(file_path)[0] + '.xlsx'
            df.to_excel(excel_path, index=False)
            print(f"Данные сохранены в файл: {excel_path}")

if __name__ == "__main__":
    main()
    
    
    ===============
    
   
    # скрипт попроще, без диалогового окна и без массовой обработки файлов. Также нужно заранее создать файл Excel в которой будет записывать результат,  все в ручном режиме

'''    
    import pandas as pd 
import json

# Путь к вашему JSON файлу
file_path = '/Users/wl/Desktop/json/oks_ds2-region-52-page-1.json'

# Чтение файла JSON
with open(file_path, 'r', encoding='utf-8') as file:
    json_data = json.load(file)

# Обработка вложенных структур
for entry in json_data:
    for key in ['purpose', 'right', 'address']:
        if key in entry and isinstance(entry[key], dict):
            for subkey, value in entry[key].items():
                entry[f"{key}_{subkey}"] = value
            del entry[key]

# Преобразование данных JSON в DataFrame
df = pd.DataFrame(json_data)

# Сохранение DataFrame в файл Excel (вместо CSV)
excel_path = '/Users/wl/Desktop/json/oks_data.xlsx'
df.to_excel(excel_path, index=False)

print(f"Данные сохранены в файл: {excel_path}")
'''
=========


# самая первая попытка написания скрипта конвертирует дополнительно ещё в csv остается много лично
'''
import pandas as pd
import json

# Путь к вашему JSON файлу
file_path = '/Users/wl/Desktop/json/parcels_ds3-region-52-page-1.json'

# Чтение файла JSON
with open(file_path, 'r', encoding='utf-8') as file:
    json_data = json.load(file)

# Преобразование данных JSON в DataFrame
df = pd.DataFrame(json_data)

# Сохранение DataFrame в файл CSV
csv_path = '/Users/wl/Desktop/json/parcels_data.csv'
df.to_csv(csv_path, index=False)

# Сохранение DataFrame в файл Excel
excel_path = '/Users/wl/Desktop/json/parcels_data.xlsx'
df.to_excel(excel_path, index=False)

print(f"Данные сохранены в файлы: {csv_path} и {excel_path}")

'''
Leave a Comment