Sunday, 15 September 2013

Invalid response of JSON data from Django QuerySet -


इस क्वेरी के साथ:

  def high_hazard (अनुरोध): reference_high = FloodHazard.objects। फिल्टर (खतरा = 'उच्च') ids_high = reference_high.values_list ( 'आईडी', फ्लैट = सच) flood_hazard = [] DJF = Django.Django (geodjango = 'geom', गुण = [ 'bldg_name', 'bldg_type']) geoj = GeoJSON.GeoJSON () ids_high में MyID के लिए: getgeom = FloodHazard.objects.get (आईडी = MyID) .geom response_high = BuildingStructure.objects.filter (geom__intersects = getgeom) get_hazard = geoj.encode (djf.decode (response_high।            फ्लडहैज़र्ड  प्रकार के आधार पर मॉडल जो "उच्च" मान के साथ इस मामले में है यद्यपि यह एक JSON डेटा देता है, आउटपुट को गड़बड़ कर दिया गया है मुझे लगता है क्योंकि यह लूप के दौरान  FloodHazard  मॉडल से सभी ज्यामिति की जांच करता है इसलिए, यह कई रिक्त सेट या खाली और बहुत से फीचर कलेक्शन देता है जो इसे एक अमान्य JSON डेटा बनाता है। उपरोक्त क्वेरी का उत्पादन ऐसा है: 

  {"crs": null, "type": "फीचरकॉल्वेशन", "फीचर्स": []} {"crs": null, " टाइप करें ":" फीचर कलेक्शन "," फीचर्स ": []} {" crs ": null," type ":" फीचर कलेक्शन "," फीचर्स ": [{" geometry ": {" type ":" MultiPoint "," coordinates ": [[१,३९,७४,३९०.८६३५०९६०८, १०२०३४०.६१२९७६६८७५]]}," type ":" सुविधा "," id ": 3350," गुण ": {" bldg_name ":" "" bldg_type ":" "}}, {" ज्यामिति " : {"प्रकार": "मल्टीपॉइंट", "निर्देशांक": [[13 9 74400.312472697, 1020356.5477410051]]}, "प्रकार": "फ़ीचर", "id": 3351, "गुण": {"bldg_name": "", "bldg_type": ""}}]}  

जैसा कि मैंने परीक्षण किया यह एक JSON validator के साथ, यह अमान्य है। तो, क्या इस JSON को नीचे की तरह आउटपुट करने के लिए पुनर्रचना का तरीका (अंडरस्कोर। जेएस या जेक्जरी का उपयोग करना) है? या मुझे अपनी क्वेरी बदलने की आवश्यकता है?

  {"crs": null, "type": "फीचरकॉल्क्शन", "फीचर्स": [{"geometry": {"type": "MultiPoint "" निर्देशांक ": [[१,३९,७४,३९०.८६३५०९६०८, १०२०३४०.६१२९७६६८७५]]}," type ":" सुविधा "," id ": 3350," गुण ": {" bldg_name ":" "" bldg_type ":" "}}, { "ज्यामिति": { "type": "बहुबिंदु", "निर्देशांक": [[१,३९,७४,४००.३१२४७२६९७, १०२०३५६.५४७७४१००५१]]}, "type": "सुविधा", "id": 3351, "गुण": { "bldg_name": "", "Bldg_type": ""} }]}  

और मूल्यों के बिना सभी फ़ीचर कलेक्शन को अनदेखा कर / निकालें / सभी मूल्यों के साथ समूह बनाएं संदर्भ के लिए उपर्युक्त क्वेरी का परिणाम है।

इसके बजाय

  लौट HttpResponse (flood_hazard, content_type = 'आवेदन / json')  

प्रयास करें

  लौट HttpResponse (json.dumps (flood_hazard), content_type = 'आवेदन / Json ')  

आपको आयात json शीर्ष पर होगा।


No comments:

Post a Comment