使用Python和Javascript从Json文件读取和写入

时间:2017-06-02 05:51:38

标签: javascript html json python-3.x

我应该阅读一个Python数据结构,一个精确的二维列表到一个javascript函数中。我开始知道这可以在将python数据结构转换为json对象然后使用Javascript函数读回json对象之后完成。我正在使用Python脚本呈现html页面,如下所示。

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看起来像这样: [[&#34;你好&#34;,&#34;有&#34;],[&#34;好&#34;,&#34;早晨&#34;,&#34;!&#34;] ]

json对象已成功创建,但我无法通过我的javascript函数读回来。我哪里错了? 我有一个约束,我不能去BeautifulSoup。 提前致谢。

1 个答案:

答案 0 :(得分:0)

你不能像这样简单地将json文件加载到浏览器中。一种方法是对json文件发出XHR请求并加载它。另一种方法是将您的json转换为jsonp结构。

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

通过上述更改,您将使用JSON调用hello javascript函数。您可以选择存储JSON以进一步访问/处理。