Преобразование CSV в JSON с помощью Python

Чтобы преобразовать файл CSV в формат JSON с помощью Python, вы можете использовать несколько методов. Вот несколько часто используемых подходов:

Метод 1: использование модулей csv и json

import csv
import json
def csv_to_json(csv_file_path, json_file_path):
    # Read CSV file
    with open(csv_file_path, 'r') as csv_file:
        csv_data = csv.DictReader(csv_file)
        # Convert CSV data to JSON
        json_data = json.dumps([row for row in csv_data])
    # Write JSON data to file
    with open(json_file_path, 'w') as json_file:
        json_file.write(json_data)

Метод 2. Использование библиотеки pandas

import pandas as pd
def csv_to_json(csv_file_path, json_file_path):
    # Read CSV file using pandas
    data_frame = pd.read_csv(csv_file_path)
    # Convert data frame to JSON
    json_data = data_frame.to_json(orient='records')
    # Write JSON data to file
    with open(json_file_path, 'w') as json_file:
        json_file.write(json_data)

Метод 3. Использование библиотеки csvkit

from csvkit import convert
def csv_to_json(csv_file_path, json_file_path):
    # Convert CSV to JSON using csvkit
    convert(csv_file_path, json_file_path, format='json')

Метод 4: анализ CSV вручную и создание JSON
Этот метод подходит для простых файлов CSV без сложной структуры.

import csv
import json
def csv_to_json(csv_file_path, json_file_path):
    # Read CSV file
    with open(csv_file_path, 'r') as csv_file:
        csv_data = csv.reader(csv_file)
        headers = next(csv_data)
        # Create JSON data
        json_data = []
        for row in csv_data:
            json_data.append(dict(zip(headers, row)))
    # Write JSON data to file
    with open(json_file_path, 'w') as json_file:
        json.dump(json_data, json_file)

Подводя итог, вы можете преобразовать файл CSV в JSON с помощью Python, используя модули csv и json, библиотеку pandas, библиотеку csvkit или вручную анализируя файл CSV. Каждый метод имеет свои преимущества, поэтому вы можете выбрать тот, который лучше всего соответствует вашим требованиям.