[python] 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)
내가 사용중인 데이터를 주겠지 만, 용량이 매우 크고 파일을 만드는 데 사용한 코드를 이미 보셨을 것입니다.
답변
선택적 인수를 사용해야합니다 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()
. 너무 빠릅니다.
답변
파이썬의 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)
답변
import json
def writeToFile(logData, fileName, openOption="w"):
file = open(fileName, openOption)
file.write(json.dumps(json.loads(logData), indent=4))
file.close()