【发布时间】:2015-08-10 23:43:38
【问题描述】:
我正在向 Python 发送获取请求表单 Javascript。我正在尝试传递一个二维数组,比如
[["one", "two"],["foo", "bar"]]
这是我目前正在尝试的,但它不起作用。
所以在我的 javascript 中,我有一个与上面类似的数组,然后像这样传递它
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "http://192.67.64.41/cgi-bin/hi.py?array=" + myArray, false );
xmlHttp.send( null );
然后在 python 中我得到它是这样的
import cgi
form = cgi.FieldStorage()
array = form.getvalue("array")
但结果不正确,如果我这样做的话,在 python 中
print array[0]
#I get -> "o"
print array[1]
#I get -> "n"
print array[2]
#I get -> "e"
等等,但如果我想要的是
print array[0]
#output -> ["one", "two"]
我怎样才能做到这一点?
谢谢
【问题讨论】:
-
你能改变你在 python 中接收数据的方式吗?最好更改您的请求以从正文中读取数据。
-
@MarkoGrešak 是的,我可以更改它我只是不确定将其更改为什么?但如果你能告诉我一个更好的方法将数据从 javascript 发送到 pythonn 那会很棒
-
This answer 可能是一个开始,您发送一个 POST 请求并将您的数据作为 javascript 请求正文。如果您使用像jQuery 这样的库,这对您来说会容易得多,其中XMLHttpRequests 与
$.ajax一起轻而易举。对于后端框架,请选择 python 网页上列出的web frameworks 之一。在任何严肃的工作中,您都需要这些来提高工作效率。 -
@MarkoGrešak 是的,但我仍然如何传递二维数组?
-
您可能必须在发送之前使用
JSON.stringify将其转换为json,然后在您的python 代码中将其解析回。但我相信 jQuery 的$.ajax({url: 'http://192.67.64.41/cgi-bin/hi.py', data: myArray })会自动执行此操作。
标签: javascript python arrays http get