Câu trả lời:
json.dumps(separators=(',', ':'))
indent=0
tạo dòng mới, trong khi indent=None
(mặc định) không có trong 2.7. Tất cả được nêu rõ tại địa chỉ: docs.python.org/3/library/json.html#json.dump
ujson
mặc định cho các bãi chứa không có khoảng trắng nhưng thật đáng buồn là nó không hỗ trợ separators
từ khóa nên không thể thêm lại khoảng trống nếu muốn. Nó nhanh hơn rất nhiều mặc dù so với tích hợp json
!
request.body
với request.data
mọi người có thể thấy điều này hữu íchbytes(json.dumps(request.data, separators=(',', ':')), 'utf-8') == request.body
Trong một số trường hợp, bạn có thể muốn thoát khỏi các khoảng trắng chỉ. Sau đó bạn có thể sử dụng
json.dumps(separators=(',', ': '))
Có một không gian sau :
nhưng không phải sau ,
.
Điều này hữu ích để phân biệt các tệp JSON của bạn (trong kiểm soát phiên bản, chẳng hạn như git diff
), trong đó một số trình soạn thảo sẽ thoát khỏi khoảng trắng ở cuối nhưng python json.dump sẽ thêm lại.
Lưu ý: Điều này không trả lời chính xác câu hỏi trên đầu, nhưng tôi đến đây để tìm câu trả lời này một cách cụ thể. Tôi không nghĩ rằng nó xứng đáng với QA của riêng mình, vì vậy tôi sẽ thêm nó vào đây.
Changed in version 3.4: Use (',', ': ') as default if indent is not None.
docs.python.org/3/library/json.html#json.dump