Как преобразовать несколько вложенных файлов JSON в один файл CSV с помощью python?

avatar
Salman Ahmad
8 августа 2021 в 15:56
397
1
-1

У меня есть около 200 вложенных файлов JSON с различными уровнями вложенности от одного до трех. Каждый файл JSON состоит из более чем тысячи точек данных. Ключи значений одинаковы во всех файлах. Моя цель — объединить данные во всех файлах в табличном формате в один файл CSV, чтобы я мог читать все данные и анализировать их. Я ищу более простой код Python с кратким объяснением каждого шага кода, чтобы помочь понять всю последовательность кода.

Источник
David Makogon
8 августа 2021 в 16:00
0

Добро пожаловать! Пожалуйста, отредактируйте свой вопрос, чтобы 1) иметь правильно отформатированный JSON и 2) содержать написанный вами код, где вы застряли, ожидаемый и фактический вывод, ошибки и т. д. В настоящее время единственное, что вы включили, это немного JSON (который не отформатирован, что затрудняет чтение).

David Makogon
8 августа 2021 в 16:00
0

Кроме того, не забудьте отметить язык, который вы используете. Есть так много способов сделать что-то подобное (пользовательский код, инструменты командной строки и т. д.). Это слишком широко, как написано (поскольку это просто основное требование).

David Makogon
8 августа 2021 в 16:31
0

@HarshSaini - это не место для продвижения продуктов, услуг, фреймворков, инструментов ... ОП может искать в Интернете различные инструменты преобразования.

Salman Ahmad
8 августа 2021 в 18:25
0

@DavidMakogon спасибо за ваш ответ. Это формат, в котором у меня есть все файлы JSON. В этом посте я включил только две строки одного файла, чтобы представить содержимое всех файлов. У меня нет опыта использования какого-либо языка программирования, однако на моем компьютере установлен Python. У меня есть 200 вложенных файлов JSON JSON, которые мне нужно преобразовать в один файл csv. Пожалуйста, дайте мне знать самый простой способ достичь моей цели.

Salman Ahmad
8 августа 2021 в 18:28
0

@HarshSaini Я пробовал этот сайт, но он позволяет мне конвертировать только один файл за раз. Мне нужно конвертировать не менее 200 файлов за раз.

Salman Ahmad
8 августа 2021 в 18:32
0

@DavidMakogon Пожалуйста, дайте мне знать, какую дополнительную информацию я могу предоставить, чтобы помочь в этом.

Harsh Saini
8 августа 2021 в 18:35
0

да @DavidMakogon полностью согласен с вами, но в вопросе не указано, как он хочет преобразовать. Итак, я подумал, что ему могут понадобиться какие-то инструменты или что-то подобное.

David Makogon
8 августа 2021 в 22:02
0

@SalmanAhmad - самое главное - показать, что вы уже сделали. И вы спрашиваете о «самом простом» способе достижения ваших целей. Нет никакого способа узнать, что было бы проще для вас. Вы даже не указали язык программирования, поэтому сейчас этот вопрос слишком широк.

Ответы (1)

avatar
Harsh Saini
8 августа 2021 в 19:15
0

Вы можете использовать этот фрагмент кода.
Прежде всего установите pandas с помощью

pip install pandas

После этого вы можете использовать этот код для преобразования файлов JSON в CSV.

# code to save all data to a single file

import pandas as pd
import glob
path = './path to directory/*.json'
files = glob.glob(path)

data_frames = []

for file in files:
    f = open(file, 'r')
    data_frames.append(pd.read_json(f))
    f.close()

pd.concat(data_frames).to_csv("data.csv")
# code to save CSV data to individual files

import pandas as pd
import glob
path = './path to directory/*.json'
files = glob.glob(path)
for file in files:
    f = open(file, 'r')
    jsonData = pd.read_json(f.read())
    jsonData.to_csv(f.name+".csv")
    f.close()
David Makogon
8 августа 2021 в 21:56
0

Я действительно не понимаю, что здесь происходит, но... вы сейчас опубликовали ответ на вопрос, в котором вообще не было конкретных деталей: никаких усилий, никакого кода, ничего. И теперь вы создаете сторонние ресурсы для своего кода? (это полностью выходит за рамки правил сайта - все должно быть самодостаточным). А что касается отладки: ОП нужно будет опубликовать отдельный вопрос. Буквально невозможно что-либо сделать с неформатированным питоном в комментарии, так как отступы являются важной частью языка.

David Makogon
8 августа 2021 в 21:57
0

@SalmanAhmad - вставка кода в комментарий не очень полезна, особенно, когда речь идет о коде Python, который зависит от интервала.

Salman Ahmad
9 августа 2021 в 01:49
0

@DavidMakogon Вы правы, я понял вашу точку зрения, что создал беспорядок в этом посте. Позвольте мне сделать репост того, чего я хочу достичь. У меня около 200 вложенных файлов JSON с разным уровнем вложенности от одного до трех. В своем вопросе я поделился образцом двух точек данных, чтобы помочь понять, как данные выглядят во всех файлах. Каждый файл JSON состоит из более чем тысячи точек данных. Моя цель - объединить данные во всех файлах в табличном формате в один файл Excel или CSV, чтобы я мог читать все данные и анализировать их.

Salman Ahmad
9 августа 2021 в 01:49
0

Поскольку у меня нет опыта программирования, я разместил этот вопрос на этом форуме, чтобы получить рекомендации о том, как выполнить эту задачу. У меня установлен Python на моем компьютере, если это может помочь мне выполнить эту задачу. Кроме того, есть ли способ использовать MATLAB для решения этой задачи. Любое руководство в этом отношении будет очень полезно для меня.

David Makogon
9 августа 2021 в 03:34
0

@SalmanAhmad - честно говоря, первый шаг - не публиковать подробности в комментариях. Хуже того, вы публикуете более подробную информацию в комментариях к ответу. Вы должны отредактировать свой вопрос, чтобы он был очень конкретным. Например, вы только что упомянули MATLAB, который нигде не появляется в вашем исходном вопросе (и делает этот текущий ответ недействительным, если не считать причин, которые я уже привел).

Salman Ahmad
9 августа 2021 в 04:15
0

@DavidMakogon Хорошо, я отредактирую свой вопрос, чтобы сделать его более конкретным. Я новичок на этом форуме, и это мой первый пост/вопрос, поэтому у меня проблемы с тем, как вопросы задаются на этом форуме.

Harsh Saini
9 августа 2021 в 05:38
0

@SalmanAhmad пройдите экскурсию по сайту, вы поймете, как это работает coderhelper.com/tour