这是我的python文件
import sys
import requests
wrapper = "[Python Storage LogReader v2.b001] "
log = {}
log_lines = sys.argv
index = 0
for line in log_lines[1:]:
error_log = wrapper + line
log[index] = error_log
index += 1
package = {}
package['test1'] = 'A'
package['test2'] = 'B'
package['log'] = log
success = requests.post('http://localhost:3000/post.php', package, False)
我这样称呼它:
python LogReader.py hello world sample
并且作为$_POST
数组接收的输出是这个:
Array (
[test1] => A
[test2] => B
[log] => 2
)
其中“ 2”是传递的参数的二进制数(我已经通过更改参数数来验证)。我想要的是:
Array (
[test1] => A
[test2] => B
[log] => Array (
[0] => hello
[1] => world
[2] => sample
)
)
我是Python的新手,但熟悉PHP及其解析$_POST
字符串的方式。本质上,我要发送的是:
test1=A&test2=B&log[]=hello&log[]=world&log[]=sample
我如何在Python中做到这一点,以便获得等效结果?显然,我的目标是最简单的方法。谢谢。
两步:
log
为list
而不是dict
:log = [wrapper + log_line for log_line in log_lines[1:]]
或为了其他目的保留循环:
log = []
for log_line in log_lines[1:]:
log.append(wrapper + log_line)
package
中,将log
的键更改为log[]
:package['log[]'] = log
[默认情况下,requests
会将log
(列表)序列化为log=hello&log=world&log=sample
作为发布数据,因此可以通过将PHP理解的方式进行格式化即可,只需在键上添加空括号即可。