2017-01-04 6 views
0

pychartを使用してhighcharts-convert/phantomJSのJSONファイルを動的に書き込もうとしています。私は働く有効なoriginal.jsonを持っています。この単純なプログラムを使ってjson.loadでそれを持ってきたら、それをjson.dumpでdata.jsonに渡すと、data.jsonはエラーを生成します!ここでjson.loadでインポートされた高チャートのJSONがjson.dumpを使用してエラーを生成しました

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です。ここ

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がそれを読み込むときに私が取得エラーですdata.json:http://pastebin.com/mXjeNYug 何が問題になりましたか?注文以外に、彼らは同じように見えます!

+0

は、このようなJavaScriptのファイルを渡す試してみてください。 – snakecharmerb

+0

@snakecharmerb私はphantomjsを使用していますhighcharts-convert.js -infile data.json -outfile chart.pngそしてチャートを作成しようとしてエラーが発生しました。私は違うことができるか? –

+0

私は両方のファイルを(実際のファイルではなく文字列として)テストし、読み込み、ダンプ(あなたの 'json.dump' argsで)&再読み込みし、そして読み込まれた"前 "と"後 "のオブジェクトを比較しました。どちらの場合も、読み込まれたオブジェクトは等しいと比較されます。私が提案できるのは、このエラーの原因となっている不良データファイルのセクションを見つけることです。おそらく、JSONのものを整理することができます(ただし、データを無効にすることなくそこに多くの緯度がないと思います)。 –

答えて

0

このコマンドを実行している:

phantomjs highcharts-convert.js -infile data.json -outfile chart.png

docsによると( "レガシーソリューション"、-infileパラメータを検索する必要があります:

変換するファイル、スクリプトこれがjavacript ファイル(オプションオブジェクトまたはsvgファイル)であるかどうかを確認する必要があります。入力ファイル の先頭が "< svg"、 "<?xml "または" <!doctype "となります。その後、それはsvg ファイルです。それ以外の場合は、オプションファイルと見なされます。

しかし、あなたはそれをパーズすることはできませんJSONを渡しています。私はfs.readを使用してphantomjs 2.1.1でそれを読んで、ディスクに「不良」JSONを保存、およびJSON.parseがエラーなしで解析された

var options = { // your JSON here, as a js object }; 
関連する問題