将数据从 Python 发送到 Javascript (JSON)
Send data from Python to Javascript (JSON)
我知道JSON可以解决这个问题,但是我在实现它时遇到了问题。以下是我的方法的详细信息:
- 数据在 Python 中计算
- 由于数据的大小是动态的,所以我需要使用 JavaScript 为我的输出创建额外的 HTML 表行。因此,我需要将数据从Python传递到JavaScript,让Javascript"看到"数据。
(下面是我的 HTML 代码的一部分,用于创建输出页面):
class OutputPage(webapp.RequestHandler):
def func (a,b):
return a+b #just an example
def get(self):
form = cgi.FieldStorage()
chem_name = form.getvalue('chemical_name')
Para1 = form.getvalue('Para1') #get values from input page--user inputs
Para1 = float(Para1)
Para2 = form.getvalue('Para2') #get values from input page--user inputs
Para2 = float(Para2)
out = func (Para1,Para1)
out_json=simplejson.dumps(out) # I need to send out to JavaScript
#writ output page
templatepath = os.path.dirname(__file__) + '/../templates/'
html = html + template.render (templatepath + 'outputpage_start.html', {})
html = html + template.render (templatepath + 'outputpage_js.html', {})
html = html + """<table width="500" class='out', border="1">
<tr>
<td>parameter 1</td>
<td> </td>
<td>%s</td>
</tr>
<tr>
<td>parameter 2</td>
<td> </td>
<td>%s</td>
</tr>
</table><br>"""%(Para1, Para2)
html = html + template.render(templatepath + 'outputpage_end.html', {})
#attempt to 'send' Python data (out_json) to JavaScript, but I failed.
html = html + template.render({"my_data": out_json})
self.response.out.write(html)
app = webapp.WSGIApplication([('/.*', OutputPage)], debug=True)
JavaScript 代码(我使用 JavaScript 动态创建额外的输入表文件名:'outputpage_js.html'):
<script>
<script type='text/javascript'>
$(document).ready(function(){
//I assume if my Json statement works, I should be able to use the following argument to create a HTML row
$('<tr><td>Parameter 2</td><td> </td><td>out_json</td>').appendTo('.app')
</script>
感谢您的帮助!
你
不必"实现"JSON,python带有一个内置的lib,叫做simplejson
,你可以用普通的字典来输入:
try:
import simplejson as json
except:
import json
out = {'key': 'value', 'key2': 4}
print json.dumps(out)
编辑:正如 Tadeck 指出的那样,SimpleJSON 应该更及时,不等于 JSON,但有可能,SimpleJSON 不可用,因为它是外部维护的。
编辑2:根据本答案中的讨论和页面上的讨论,我认为最好的方法是这样的:
蟒
# [...] generate dynamic data [...]
html = html + template.render (templatepath + 'outputpage_start.html', {})
html = html + template.render (templatepath + 'outputpage_js.html', {})
html = html + """<table width="500" class='out' border="1" data-dynamic="%s">""" % json.dumps(your_generated_data_dict)
#tr/td elements and templating as needet
self.response.out.write(html)
JavaScript
$(function(){
var your_generated_table = $('table'),
dynamic_data = JSON.parse(your_generated_table.attr('data-dynamic'));
});
然后,您将拥有与 JavaScript 对象完全相同的 Python 字典结构。
相关文章:
- Javascript JSON.parse not working
- Javascript:JSON请求仅在第一次工作
- 定义this.properties或objectName.properties的javascript JSON对象
- Javascript/JSON警报返回Undefined
- 使用XPath样式访问Javascript JSON对象属性
- JavaScript JSON关联对象键和值都作为日期时间戳
- Javascript-JSON-嵌套和分组
- Javascript json返回未定义
- 无标题Javascript JSON数组->CSV导出
- Javascript JSON对象替换对象中的字符串
- Javascript/Json日期转换问题
- 使用jstl c:forEach在迭代jsp bean上创建javascript json对象
- 为什么我的JavaScript / JSON脚本不能在Internet Explorer中工作
- 将数据从 Python 发送到 Javascript (JSON)
- JavaScript Json 值追加基于相等条件
- 在设置用户后,从 JavaScript JSON 请求中获取 Web 服务 (asmx) ASP.NET Windows
- JavaScript - JSON 数据结构的构建 - 如何使用变量值更改键名
- Javascript JSON 解析和字符串化用于多级
- 如何将数据 php 更改为 javascript json
- Javascript JSON 到 Excel 文件下载