[PYTHON] Python을 사용하여 JSON 데이터를 파일로 멋지게 인쇄
PYTHONPython을 사용하여 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.
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을 구문 분석 한 후 다음과 같은 들여 쓰기로 다시 출력 할 수 있습니다.
JSON을 구문 분석 한 후 다음과 같은 들여 쓰기로 다시 출력 할 수 있습니다.
import json mydata = json.loads(output) print json.dumps(mydata, indent=4)
자세한 내용은 http://docs.python.org/library/json.html을 참조하십시오.
-
==============================
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.파이썬의 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.파일을 파이썬으로 리디렉션하고 도구를 사용하여 열어서 더 많이 읽도록 할 수 있습니다.
파일을 파이썬으로 리디렉션하고 도구를 사용하여 열어서 더 많이 읽도록 할 수 있습니다.
샘플 코드는,
cat filename.json | python -m json.tool | more
from https://stackoverflow.com/questions/9170288/pretty-print-json-data-to-a-file-using-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 예외를 발생시키지 않고 python 스택 추적을 인쇄하십시오. (0) | 2018.10.21 |
---|---|
[PYTHON] "For"루프 첫 번째 반복 (0) | 2018.10.21 |
[PYTHON] numpy 배열의 n 번째 항목마다 서브 샘플링 (0) | 2018.10.21 |
[PYTHON] x보다 큰 첫번째 파이썬리스트 인덱스? (0) | 2018.10.21 |
[PYTHON] 파이썬으로 모듈을 "다시 가져 오는"다음에 코드를 가져온 후에 변경하는 방법 (0) | 2018.10.21 |