programing

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

padding 2023. 4. 3. 21:19
반응형

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 documentation 등을 지적해 주셔서 감사합니다만, 이미 말씀드린 바와 같이 저는 이미 그것을 검토했고, 앞으로도 도움이 필요합니다.정말로 도움이 되는 회답은, 거기서 볼 수 있는 예보다 상세하고 설명이 됩니다.감사합니다.

기타: Windows 명령줄에서 다음을 시도합니다.

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

결과는 다음과 같습니다.

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

제가 사용하는 데이터를 드릴 수 있지만, 매우 크고 제가 파일을 만드는 데 사용한 코드를 이미 보셨을 겁니다.

옵션 인수를 사용해야 합니다.indent.

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(). 그것도 빨라요.

python의 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을 생성하거나 기존 josn 파일을 수정하는 경우 예쁜 뷰 json 형식에 대해 "indent" 매개 변수를 사용합니다.

import json
responseData = json.loads(output)
with open('twitterData.json','w') as twitterDataFile:    
    json.dump(responseData, twitterDataFile, 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()
import json
def writeToFile(logData, fileName, openOption="w"):
  file = open(fileName, openOption)
  file.write(json.dumps(json.loads(logData), indent=4)) 
  file.close()  

파일을 python으로 리다이렉트하여 툴을 사용하여 열 수 있습니다.읽기 위해서는 더 많은 것을 사용합니다.

샘플 코드는 다음과 같습니다.

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

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

반응형