복붙노트

[PYTHON] Python을 사용하여 JSON 데이터를 파일로 멋지게 인쇄

PYTHON

Python을 사용하여 JSON 데이터를 파일로 멋지게 인쇄

클래스 프로젝트는 Twitter JSON 데이터를 파싱하는 작업입니다. 나는 데이터를 가져 와서 많은 문제없이 파일에 설정하고 있지만 한 줄에 모두 나와 있습니다. 이 작업은 내가하려는 데이터 조작에는 문제가 없지만 파일을 읽는 것은 엄청나게 어렵습니다. 데이터 조작 부분에 대한 코드 작성을 매우 어렵게 만들었습니다.

누구든지 파이썬에서 그것을 수행하는 방법을 알고 있습니까 (즉, 명령 행 도구를 사용하지 않음, 작동하지 않을 수 있음)? 지금까지 내 코드는 다음과 같습니다.

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 문서 등으로 안내해 주셔서 고맙게 생각합니다. 그러나 제가 말했듯이, 나는 이미 그것을 보았고 계속해서 도움이 필요합니다. 진실로 도움이되는 대답은 거기에서 발견 된 사례보다 더 자세하고 설명적일 것입니다. 감사

또한: 창 명령 줄에서 이것을 시도 :

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

결과는 다음과 같습니다.

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

나는 당신에게 내가 사용하고있는 데이터를 줄 것이다. 그러나 그것은 매우 커서 파일을 만드는 데 사용한 코드를 이미 보았다.

해결법

  1. ==============================

    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. ==============================

    2.JSON을 구문 분석 한 후 다음과 같은 들여 쓰기로 다시 출력 할 수 있습니다.

    JSON을 구문 분석 한 후 다음과 같은 들여 쓰기로 다시 출력 할 수 있습니다.

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

    자세한 내용은 http://docs.python.org/library/json.html을 참조하십시오.

  3. ==============================

    3.

    import json
    
    with open("twitterdata.json", "w") as twitter_data_file:
        json.dump(output, twitter_data_file, indent=4, sort_keys=True)
    

    나중에 json.dumps ()를 사용하여 문자열을 구문 분석하지 않으려면 json.dumps ()가 필요하지 않습니다. 그것은 더 빠릅니다.

  4. ==============================

    4.파이썬의 json 모듈을 사용하여 꽤 인쇄 할 수 있습니다.

    파이썬의 json 모듈을 사용하여 꽤 인쇄 할 수 있습니다.

    >>> 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)
    
  5. ==============================

    5.파일을 파이썬으로 리디렉션하고 도구를 사용하여 열어서 더 많이 읽도록 할 수 있습니다.

    파일을 파이썬으로 리디렉션하고 도구를 사용하여 열어서 더 많이 읽도록 할 수 있습니다.

    샘플 코드는,

    cat filename.json | python -m json.tool | more
    
  6. from https://stackoverflow.com/questions/9170288/pretty-print-json-data-to-a-file-using-python by cc-by-sa and MIT license