2017-06-02 7 views
0

私は、Pythonのデータ構造を読み、javascript関数の正確な2次元リストを読み込むことになっています。私は、これがPythonのデータ構造をjsonオブジェクトに変換した後、Javascript関数を使用してjsonオブジェクトを読み取った後にこれを行うことができることを知りました。私は以下のようにPythonスクリプトを使ってhtmlページをレンダリングしています。PythonとJavascriptを使ったJsonファイルからの読み込みと書き込み

import webbrowser, json 
f = open('World.html', 'w') 
arr = [[]] 
arr[0].append('Hello') 
arr[0].append('There') 
arr.append([]) 
arr[1].append('Good') 
arr[1].append('Morning') 
arr[1].append('!') 
message = '''<html><head><script type="text/javascript" src="outputjson.json"></script><script>function Hello(){alert(outputjson.arr);}</script></head><body><h1>This is not working and you know it</h1><input value="Click Bro" type="button" onclick="Hello();"></input></body></html>''' 
f.write(message) 
with open('outputjson.json', 'w') as f: 
     json.dump(arr, f) 

f.close() 
webbrowser.open_new_tab('World.html') 

Outputjson.jsonこのような何かを見て:JSONオブジェクトが正常である [[ "こんにちは"、 "そこ"]、[ "良い"、 "朝"、] "!"]

を作成されましたが、私はJavaScript関数を介してそれを読み取ることができません。どこが間違っていますか? 私には制約があり、BeautifulSoupに行くことはできません。 ありがとうございます。

+0

エラーメッセージはありますか? –

+0

いいえ、警告メッセージは表示されません。私は明らかにそれをハードコード場合、警告メッセージが動作します。 –

+0

jsonをこのようにロードすることはできません。 jsonはjvalにevalされ、それは利用できません – karthick

答えて

0

jsonファイルをブラウザに簡単に読み込むことはできません。 1つの方法は、jsonファイルへのXHR要求を作成し、ロードすることです。もう1つの方法は、jsonjsonp構造に変換することです。上記の変更に伴い

jsonp_structure = "hello(" + json.dumps(arr) + ")" 
f.write(jsonp_structure) 

あなたのJSONを使って呼び出されますjavascript関数hello。さらにアクセス/処理するためにJSONを保存することもできます。

+0

jsonpの回答を参照してください:https://stackoverflow.com/questions/3839966/can-anyone-explain-what-jsonp-is-in-layman-terms –

+0

ちょっとおかげさしで、マイナーチェンジ。 jsonp_strucutre = "hello =(" + json.dumps(arr)+ ")" –

関連する問題