파이썬-공백이없는 json


154

방금 json.dumps()JSON 객체에 공백 을 추가 한다는 것을 깨달았습니다.

예 :

{'duration': '02:55', 'name': 'flower', 'chg': 0}

JSON을보다 컴팩트하게 만들고 바이트를 저장하여 HTTP를 통해 보내려면 공백을 어떻게 제거 할 수 있습니까?

같은 :

{'duration':'02:55','name':'flower','chg':0}

3
파이썬 3.4에서 수정 : Changed in version 3.4: Use (',', ': ') as default if indent is not None. docs.python.org/3/library/json.html#json.dump
grisaitis

답변:


248
json.dumps(separators=(',', ':'))

2
json 유효성 검사로 doctest에 매우 유용합니다.
andilabs

9
또한 줄 indent=0바꿈 을 생성하지만 indent=None(기본값) 2.7에는 없습니다. 모든 명확로 평가된다 docs.python.org/3/library/json.html#json.dump
치로 틸리郝海东冠状病六四事件法轮功

ujson공백없이 덤프로 기본 설정되지만 슬프게도 separators키워드를 지원하지 않으므로 원하는 경우 공백을 다시 추가 할 수 없습니다. 내장 된 것보다 훨씬 빠릅니다 json!
radtek

나는 장고 request.bodyrequest.data사람들 과 비교하려고 노력하면서 여기에 도착했다 . 그래서 사람들은 이것이 유용하다는 것을 알 수있다bytes(json.dumps(request.data, separators=(',', ':')), 'utf-8') == request.body
Matt

49

경우에 따라 후행 공백 만 제거 할 수도 있습니다 . 그런 다음 사용할 수 있습니다

json.dumps(separators=(',', ': '))

뒤에 공백이 :있지만 뒤에는 없습니다 ,.

이것은 git diff일부 편집기가 후행 공백을 제거하지만 python json.dump가 다시 추가하는 JSON 파일 (과 같은 버전 제어에서)을 확산시키는 데 유용합니다 .

참고 :이 질문에 대한 정확한 답변은 아니지만이 답변을 찾기 위해 여기에 왔습니다. 자체 품질 보증이 필요하다고 생각하지 않으므로 여기에 추가하겠습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.