Подтвердить что ты не робот

Необходимость Pretty-Print Twitter JSON Data в файл с помощью Python

Проект для класса включает в себя анализ данных JSON на Twitter. Я получаю данные и устанавливаю их в файл без особых проблем, но все это в одной строке. Это хорошо для манипуляций с данными, которые я пытаюсь сделать, но файл смехотворно трудно читать, и я не могу его изучить очень хорошо, что очень затрудняет запись кода для части обработки данных.

Кто-нибудь знает, как это сделать из Python (т.е. не использовать инструмент командной строки, с которым я не могу работать)? Вот мой код:

header, output = client.request(twitterRequest, method="GET", body=None,
                            headers=None, force_auth_header=True)

# now write output to a file
twitterDataFile = open("twitterData.json", "wb")
# magic happens here to make it pretty-printed
twitterDataFile.write(output)
twitterDataFile.close()

Примечание. Я ценю, что люди указывают мне на документацию simplejson и т.д., но, как я уже сказал, я уже посмотрел на это и по-прежнему нуждаюсь в помощи. Поистине полезный ответ будет более подробным и объяснительным, чем примеры, найденные там. Благодаря

И Попробуйте это в командной строке Windows:

more twitterData.json | python -mjson.tool > twitterData-pretty.json

приводит к следующему:

Invalid control character at: line 1 column 65535 (char 65535)

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

4b9b3361

Ответ 1

header, output = client.request(twitterRequest, method="GET", body=None,
                            headers=None, force_auth_header=True)

# now write output to a file
twitterDataFile = open("twitterData.json", "w")
# magic happens here to make it pretty-printed
twitterDataFile.write(simplejson.dumps(simplejson.loads(output), indent=4, sort_keys=True))
twitterDataFile.close()

Ответ 2

Вы можете разобрать JSON, а затем вывести его снова с помощью таких отступов:

import json
mydata = json.loads(output)
print json.dumps(mydata, indent=4)

Подробнее см. http://docs.python.org/library/json.html.

Ответ 3

Вы можете использовать json модуль python для красивой печати. ​​

>>> import json
>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4)
{
    "4": 5,
    "6": 7
}

Итак, в вашем случае

>>> print json.dumps(json_output, indent=4)

Ответ 4

Я знаю, что это старый вопрос, столкнулся с этим вопросом и нашел простой ответ. Просто перенаправьте filename.json на python и откройте с помощью инструмента, и чтобы прочитать его, используйте больше.

Пример кода будет,

cat filename.json | python -m json.tool | более