我使用以下命令在我的PHP文件中创建post变量:
test=urllib2.urlopen(urllib2.Request('php.php',urllib.urlencode({'test':[1,2,3,4,5]}))).read()
print test
我希望在$_POST
文件中创建一个php.php
,它是一个变量和数组的数组。
php.php:
print_r($_POST['test']);
echo is_array($_POST['test'])?"YES! THIS IS AN ARRAY":"NO! THIS IS A STRING";
不幸的是,它最远的是创建一个数组的'字符串'表示。
我尝试将urlencode
param设置为True
,就像我在类似问题中看到的建议一样:
urlencode({'test':[1,2,3,4,5]},True)
我也尝试使用Python requests.post
并获得了类似的结果。
但正如您所看到的,它只输出数组中的最后一个数字。有没有办法在Python脚本中解决这个问题?
答案 0 :(得分:1)
我找到了答案,这很简单。
只需将{'test':[1,2,3,4,5]}
密钥更改为{'test[]':[1,2,3,4,5]}
请注意我添加[]
确保参数中有True
response=urllib2.urlopen(URL,urllib2.Request(urlencode({'test[]':[1,2,3,4,5]},True)))
如果您使用的是request.post方法:
response=requests.post(URL,data={'test[]':[1,2,3,4,5]})