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
'programing' 카테고리의 다른 글
Woocommerce 변환을 덮어쓰는 방법 (0) | 2023.04.03 |
---|---|
오라클 Data Pump 내보내기 파일 내의 스키마를 확인하는 방법 (0) | 2023.04.03 |
MUI에서는 입력과폼을 작성하기 위한 TextField? (0) | 2023.04.03 |
CorsFilter 및 스프링 보안 사용 시 Cors 오류 발생 (0) | 2023.04.03 |
j쿼리 투고 JSON (0) | 2023.03.29 |