4

私の問題には、合理的に単純な解決策があるように感じます。

エンドポイントでhighchartsの形式で出力されるデータ操作を行っています。現在、ネストされた辞書のセット全体を引き離して各部分を出力していますが、出力がすべてのキーが引用符で囲まれていない JSON.dumps(dict) のようなものがあることを望んでいました。したがって、コードっぽいものでは:

{
    'chart': {'backgroundColor': 'Blue',
              'borderColor': 'Black',
              'renderTo': 'container'},
    'xAxis': { ... },
...
}

への出力

{
    chart: {
        backgroundColor: 'Blue',
        borderColor: 'Black',
        renderTo: 'container'},
    xAxis: { ... },
...
}

このような出力ができない場合、Python から HighCharts とやり取りする良い方法はありますか? 合理的なGoogle-Fuにもかかわらず、私はまだ実際に出くわしたことはありません。

編集:私はこれをGeckoboard - Highcharts プラグインと互換性を持たせることに取り組んでおり、出力を解析するための JavaScript の完全な機能にアクセスできません。データを送信するときに、フォーマット済みで、すぐに使用できる状態にしておく必要があります。

4

2 に答える 2

4

有効な json テキストを指定するだけです。あなたの質問の例は有効なjsonではありません。プッシュ API の使用:

#!/usr/bin/env python
import json
import urllib2

try:
    r = urllib2.urlopen("https://push.geckoboard.com/v1/send/" + widget_key,
                        json.dumps(nested_dict))
except IOError as e:
    if hasattr(e, 'reason'):
       print "connection error:", e.reason
    elif hasattr(e, 'code'):
       print "http error:", e.code
       print e.read()
    else:
       print "error:", e
else: # success
    assert json.load(r)["success"]
于 2012-09-23T03:15:11.927 に答える
1

はい。クライアント側で文字列をデコードする必要があります(javascriptを使用):

JSON.parse('{"background": "black"}')

このメソッドは、Highcharts に渡すことができる JavaScript オブジェクトを返します。

したがって、Python 出力を js 文字列に保存してから、それを JS オブジェクトに変換する必要があります。

于 2012-09-23T01:03:29.317 に答える