Редактировать большой файл JSON - PullRequest
0 голосов
/ 12 мая 2018

Как я могу редактировать большой JSON вручную?

У меня большой файл JSON, около 100 МБ. Я хотел бы вручную проверить некоторые атрибуты, а затем добавить дополнительные атрибуты для некоторых объектов.

Я бы начал с просмотра подмножества файла. Скажем, первые 100 предметов. Я бы постепенно увеличивал масштаб до 250, затем тысячи и т. Д.

Может ли кто-нибудь предложить язык или программное обеспечение (я использую Windows), превосходное в этой задаче?

Некоторые предыдущие предложения, которые не работают или не могут работать.

  • Sublime - никогда не загружал файл. Загрузка бар навсегда. Пришлось убить.
  • NotePad ++ - никогда не загружается. Froze. Пришлось убивать.
  • Все, что в сети - данные являются конфиденциальными.

Больше информации о Python и Jupyter.

with open(path, 'r') as f:
    data = json.load(f)
    for i, (k, v) in enumerate(data.items()):
        print(i, k, v)
        if i == 2:
            break

Вызывает ошибку. Я думаю, что это связано с Юпитером, но я не уверен.

IOPub data rate exceeded.
The notebook server will temporarily stop sending output
to the client in order to avoid crashing it.
To change this limit, set the config variable
`--NotebookApp.iopub_data_rate_limit`.

Current values:
NotebookApp.iopub_data_rate_limit=1000000.0 (bytes/sec)
NotebookApp.rate_limit_window=3.0 (secs)

Это заставляет меня задаться вопросом, просто ли так поступать глупо.

Возможные решения

Ответы [ 4 ]

0 голосов
/ 12 мая 2018

Если вы используете linux (или имеете возможность перенести файл в * nix), вы можете проверить количество строк в файле через

wc -l myfile.json

Допустим, для этой целиПроще говоря, что ваш файл имеет 2530000 строк, и вы хотите разбить его на 100 тыс. строк каждая, вы можете использовать любую из команд, доступных в вашем дистрибутиве, чтобы разделить файл дальше на нужные куски, а затем редактировать их, одну за другой.

Если вам удобно идти по «пути Linux», ознакомьтесь с некоторыми советами, приведенными по другим темам, например редактируйте файл размером в несколько ГБ, когда редактор vi не работает

Надеюсь, это поможет!

0 голосов
/ 12 мая 2018

Что вы можете сделать, это написать простую программу с графическим интерфейсом. используйте TKinter, чтобы создать окно и текстовую область внутри него, чтобы показать json, текстовое поле, в которое вы будете вводить, сколько объектов вы хотите видеть, и кнопку с именем Next или что-то, чтобы увидеть следующую и еще одну кнопку. сохранить. Ниже будут функциональные возможности для каждого из элементов.

Сначала вы прочитаете полный json на python и сделаете его диктовочным.

Кнопка «Далее» - Это будет повторяться в зависимости от значения в TextBox. Вы могли бы написать собственный генератор, где он будет давать в зависимости от количества требуемых значений.

Кнопка сохранения - : Это сохранит текущий JSON в новый JSON или, если вы можете, вы можете попробовать написать функцию для непосредственного обновления текущего JSON.

Текстовая область - Вы должны взять словарь и преобразовать его в json и показать вывод из генератора Next Button.

0 голосов
/ 12 мая 2018

Не самый лучший ответ, но проблема с чтением JSON, похоже, ограничена ноутбуками Jupyter (или даже ограничениями моего ноутбука).

Работа в Spyder или запуск из командной строки позволяет обойти ошибку Jupyter, упомянутую в исходном вопросе.

Было бы замечательно, если бы кто-то знал, как настроить Jupyter, чтобы избежать этой проблемы (извините, я пока не уверен, как).

0 голосов
/ 12 мая 2018

для редактора, попробуйте notepad ++ для языка, попробуйте Python, поскольку у вас нет структуры данных, я не могу дать больше ответа.

...