2010-11-30 8 views
5

मैंने एपीआई और संसाधनों के सभी प्रकारों को देखा है, लेकिन मुझे AJAX का उपयोग करके एक पायथन स्क्रिप्ट से JSON ऑब्जेक्ट लाने का लटका नहीं लग रहा है। मुझे यकीन है कि समस्या यह है कि मैं JSON ऑब्जेक्ट से कैसे निपट रहा हूं।मैं एक पायथन स्क्रिप्ट से jQuery पर JSON ऑब्जेक्ट कैसे भेज सकता हूं?

सबसे पहले, अपने सर्वर पर एक अजगर स्क्रिप्ट में, मैं पैदा करते हैं और फिर एक JSON सारणी

import json 
print "Content-type: application/json" 
print 
print json.dumps(['Price',{'Cost':'99'}]) 

प्रिंट, एक अलग html फ़ाइल में, मैं की तरह

<body> 
<div id="test"> 
</div> 

<script> 
$(document).ready(function() { 
    $.getJSON("http://www.example.com/cgi-bin/makeJSON.py", function(data) { 
     $('#test').html("JSON Data: " + data.Price); 
    }); 
}); 
</script> 
</body> 

लेकिन मैं डॉन कुछ कोशिश कुछ भी नहीं मिला। मुझे यकीन है कि data.Price गलत है, लेकिन मुझे भी यकीन है कि मुझे json.dumps

के परिणामों को प्रिंट करने के बजाय कुछ करना चाहिए, किसी भी मदद की सराहना की जाती है! अग्रिम धन्यवाद, और खेद है कि यह एक स्पष्ट सवाल है।

उत्तर

6

आपके मामले में आपने JSON प्रतिक्रिया को array में संलग्न किया है। कीमत तक पहुंचने के लिए आपको data[0] तक पहुंचने की आवश्यकता है। आपको अपने JSON डेटा को व्यवस्थित करने की आवश्यकता है।

आपकी पायथन लिपि में निम्नलिखित परिवर्तन आपको data.Price तक पहुंचने की अनुमति दे सकते हैं। अगर आपको अभी भी किसी भी मुद्दे का सामना करना पड़ता है तो मुझे बताएं।

import json 
    print "Content-type: application/json" 
    print 
    response={'Price':54,'Cost':'99'} 
    print(json.JSONEncoder().encode(response)) 
+0

धन्यवाद, फिलर! डेटा [0] काम करता है! – Parker

+0

कोई समस्या नहीं है, लेकिन हमें प्रतिक्रिया JSON डेटा को सही ढंग से बनाने की आवश्यकता है। आइए मान लें कि 'प्राइस' और 'कॉस्ट' दोनों एक पायथन शब्दकोश में सरल कुंजी हैं, जब क्लाइंट को भेजे जाते हैं तो क्रमशः 'data.Price' और' data.Cost' का उपयोग करके एक्सेस किया जा सकता है। – Philar

+0

अहह, जो सबकुछ हल करता है, उसे इंगित करने के लिए धन्यवाद! – Parker

1

कृपया जो भी करने का प्रयास कर रहे हैं, उसके लिए अधिक संदर्भ प्रदान करें। क्या आप JSON ऑब्जेक्ट को HTML में हार्ड-कोड कर सकते हैं? या, क्या आप AJAX की तरह कुछ और गतिशील करने की कोशिश कर रहे हैं?

पूर्व के लिए, पेज के HTML स्रोत को देखें जो पायथन उत्पन्न करता है। ऐसा लगता है कि कुछ ध्यान देना चाहिए:

<script type="text/javascript"> 
    var MY_GLOBAL_JSON_OBJECT = { ... }; 
</script> 

या आप केवल समारोह है कि वास्तव में यह एक वैश्विक चर के लिए सबसे पहले यह बताए के बजाय उपयोग कर रहा है अंदर JSON ऑब्जेक्ट थूक से बाहर कर सकता है।

+0

धन्यवाद मैट! मुझे सही JSON ऑब्जेक्ट लौटने वाली स्क्रिप्ट मिली है। और हाँ, यह गतिशील है, इसलिए मैं इसे हार्डकोड नहीं कर सकता। अब एकमात्र मुद्दा यह है कि मुझे नहीं पता कि संग्रहीत मूल्यों का उपयोग कैसे किया जाए, क्योंकि 'data.Price' काम नहीं करता है – Parker

संबंधित मुद्दे