我正在尝试使用python动态地为highcharts-convert / phantomJS编写一个JSON文件。我有一个有效的original.json。当我使用这个简单的程序将它带入json.load,然后将json.dump带入data.json时 - data.json会生成错误!
import json
with open('orignal.json') as data_file:
data = json.load(data_file)
with open('data.json', 'w') as outfile:
json.dump(data, outfile, indent=4, separators=(',',':'), ensure_ascii=True)
以下是phantomjs / highcharts-convert.js读取错误时得到的错误:
SyntaxError: Unexpected token ':'
TRACE:
-> phantomjs://code/data.js: 2 (in function "injectJs")
-> phantomjs://code/highcharts-convert.js: 637 (in function "injectResources")
-> phantomjs://code/highcharts-convert.js: 808
-> phantomjs://platform/webpage.js: 286 (in function "_onPageOpenFinished")
phantomjs://code/highcharts-convert.js:723 in onError
Exited with message 'ERROR: SyntaxError: Unexpected token ':''
这是original.json:http://pastebin.com/fAXtmHTc
这里是json.dump data.json:http://pastebin.com/mXjeNYug 什么地方出了错?除了订单,他们似乎是一样的!
答案 0 :(得分:0)
您正在执行此命令:
phantomjs highcharts-convert.js -infile data.json -outfile chart.png
根据docs(搜索“遗留解决方案”,-infile
参数应为:
要转换的文件,脚本必须查找这是否是一个javascript 带有选项对象或svg文件的文件。它检查输入文件 以“< svg”,“<?xml”或“<!doctype”开头。然后它是一个svg 文件,否则它被认为是一个选项文件。
但是你传递的是JSON
,它无法解析。
尝试传递这样的javascript文件:
var options = { // your JSON here, as a js object };