使用json.dump时,使用json.load导入的高图表的JSON生成错误

时间:2017-01-04 12:11:04

标签: python json highcharts phantomjs highcharts-convert

我正在尝试使用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 什么地方出了错?除了订单,他们似乎是一样的!

1 个答案:

答案 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 };