I've looked through APIs and all sorts of resources, but I can't seem to get the hang of fetching a JSON object from a Python script using AJAX. I'm sure the issue is with how I'm dealing with the JSON object.
First, in a python script on my server, I generate and print a JSON array
import json
print "Content-type: application/json"
print
print json.dumps(['Price',{'Cost':'99'}])
Then, in a separate html file, I try something like
<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>
But I don't get anything. I'm sure that data.Price
is wrong, but I'm also pretty certain that I should be doing something instead of just printing the results of json.dumps
Any help is appreciated! Thanks in advance, and sorry if this is an obvious question.
Please provide more context to what you're trying to do. Can you just hard-code the JSON object into the HTML? Or, are you trying to do something more dynamic, like AJAX?
For the former, view the HTML source of the page that Python generates. It must look something like:
Or you could just spit out the JSON object inside the function that's actually using it instead of assigning it first to a global variable.
In your case you have enclosed the JSON response in an
array
. To access price you need to accessdata[0]
. You need to structure your JSON data properly.The following changes in your Python script should allow you to access
data.Price
. Let me know in case you still face any issues.