developer tip

Python을 사용하여 파일에 예쁜 인쇄 JSON 데이터

copycodes 2020. 10. 9. 11:22
반응형

Python을 사용하여 파일에 예쁜 인쇄 JSON 데이터


클래스 용 프로젝트에는 Twitter JSON 데이터 구문 분석이 포함됩니다. 데이터를 가져 와서 별 문제없이 파일로 설정하고 있지만 모두 한 줄에 있습니다. 이것은 내가하려는 데이터 조작에는 괜찮지 만 파일을 읽기가 엄청나게 어렵고 잘 검사 할 수 없어 데이터 조작 부분에 대한 코드 작성이 매우 어렵습니다.

누구든지 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)

내가 사용중인 데이터를 주겠지 만, 용량이 매우 크고 파일을 만드는 데 사용한 코드를 이미 보셨을 것입니다.


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()

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

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

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


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.dump(). 너무 빠릅니다.


파이썬의 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)

예쁜 형식을 원하는 기존 JSON 파일이 이미있는 경우 다음을 사용할 수 있습니다.

    with open('twitterdata.json', 'r+') as f:
        data = json.load(f)
        f.seek(0)
        json.dump(data, f, indent=4)
        f.truncate()

새 * .json을 생성하거나 기존 josn 파일을 수정하는 경우 pretty view json 형식에 "indent"매개 변수를 사용하십시오.

import json
responseData = json.loads(output)
with open('twitterData.json','w') as twitterDataFile:    
    json.dump(responseData, twitterDataFile, indent=4)

You could redirect a file to python and open using the tool and to read it use more.

The sample code will be,

cat filename.json | python -m json.tool | more

참고URL : https://stackoverflow.com/questions/9170288/pretty-print-json-data-to-a-file-using-python

반응형