पायथन - बिना व्हाट्सएप के जसन


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 सत्यापन के साथ सिद्धांतों के लिए बहुत उपयोगी है।
औरिलाब्स

9
और यह भी ध्यान दें कि indent=0नई लाइनें उत्पन्न करता है, जबकि indent=None(डिफ़ॉल्ट) 2.7 में नहीं है। सभी को स्पष्ट रूप से कहा गया है: docs.python.org/3/library/json.html#json.dump
Ciro Santilli Sant:::

ujsonव्हॉट्सएप के बिना डंप करने के लिए चूक लेकिन दुख की बात है कि यह separatorsकीवर्ड का समर्थन नहीं करता है इसलिए यदि वांछित है तो स्थान को वापस नहीं जोड़ सकता है। यह एक बहुत तेज है, हालांकि बनाम में निर्मित है json!
राडेक

मैं यहाँ पहुंचे ताकि लोगों request.bodyको Django की तुलना करने की कोशिश में request.dataयह उपयोगी मिल जाएbytes(json.dumps(request.data, separators=(',', ':')), 'utf-8') == request.body
मैट

49

कुछ मामलों में आप केवल पीछे चल रहे व्हाट्सएप से छुटकारा पा सकते हैं । तब आप उपयोग कर सकते हैं

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

एक जगह है :लेकिन बाद में नहीं ,

यह आपकी JSON फ़ाइलों (जैसे संस्करण नियंत्रण में git diff) को अलग करने के लिए उपयोगी है , जहां कुछ संपादकों को अनुगामी व्हाट्सएप से छुटकारा मिल जाएगा लेकिन अजगर json.dump इसे वापस जोड़ देगा।

नोट: यह वास्तव में शीर्ष पर प्रश्न का उत्तर नहीं देता है, लेकिन मैं विशेष रूप से इस उत्तर की तलाश में यहां आया था। मुझे नहीं लगता है कि यह अपने क्यूए के योग्य है, इसलिए मैं इसे यहां जोड़ रहा हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.