我使用Python从网上抓取一些数据,然后使用d3.js显示所述数据。我在d3.js中读取生成的JSON时遇到了问题。
Python代码:
course_json_list = []
obj = {u"course_id": course_id, u"prereqs": prereqs}
course_json_list.append(json.dumps(obj, indent=4))
# setting up JSON output file
json_output = {"nodes": course_json_list,
"links": None}
with open("course-data.json", "w") as outfile:
json.dump(json_output, fp=outfile)
当我在gVim中打开此代码时,我看到:
{"nodes": ["{\n \"course_id\": \"Course 1\",\n \"prereqs\": null,\n...
我的d3.js代码:
var dataset;
d3.json('course-data.json', function(error, json_data) {
if (error) console.log(error);
dataset = json_data;
d3.select("body").selectAll("p")
.data(dataset.nodes)
.enter()
.append("p")
.text(function(d) {
//When this is return d; it works
return d["course_id"];
});
});
我已将其放入JSONLint并返回:
{
"nodes": [
"{\n \"course_id\": \"Course 1\", \n \"prereqs\": null, \n \"off_w\": null, \n \"name\": \"Intro\"\n}",
"{\n \"course_id\": \"Course 2\", \n ...
JSONLint说JSON是有效的,但我的d3.js代码不会读它。 我的python是否会生成错误的JSON?如果是这样,我该如何正确生成它?我在d3.js中错误地引用了JSON吗?
由于