使用Python构建带有数组的phpstyle url

2024-09-28 21:54:40 发布

您现在位置:Python中文网/ 问答频道 /正文

PHP使用[]符号在URL中对数组进行编码,例如

$f = array( 'a', 'b', 'c');
http_build_query( array('f'=> $f) );
http://server/q.php?f[]=aaaa&f[]=bbb&f[]=ccc

在Python中,我还没有见过这样的表示法。相反,我通常看到:

f = [ 'a', 'b', 'c']
http://server/q.py?f=aaaa&f=bbb&f=ccc

PYTHON中是否有现成的方法来对数组进行编码,供PHP研究?你知道吗

编辑

针对我看到的特定注释:以下几行在PHP中的解释方式不同。如果你不相信我,用phpinfo()运行它,@Daniel:

test.php?f=1&f=zzzzz&f=b
test.php?f[]=1&f[]=zzzzz&f[]=b

对于那个通过循环将“f”重命名为“f[]”的人:谢谢,但我要求的是一个内置的解决方案或模块。你知道吗

对我来说,不要重新发明轮子是很重要的,特别是在查询非常复杂的情况下,使用混合的数据类型,例如{str':'asd123#$','arr':['val%,')(*^&;$@$','val3',123.21],'d':{'k1':'v1','k2':'v2}。我碰巧用了更大更复杂的例子来描述一个需要它们作为url的API。你知道吗

编辑2

我想知道为什么这个问题被否决了:

这是一个关于通过URL连接python代码和PHP网站的合理问题。你知道吗

就我而言:HasOffers.com网站具有以PHP方式接受GET请求的API。你知道吗

另外,如前所述,url编码往往会变得复杂。你知道吗


Tags: testhttpurl编辑编码server方式数组
1条回答
网友
1楼 · 发布于 2024-09-28 21:54:40

您可以尝试以下操作:

>>> a = 'a b c'.split()
>>> a
['a', 'b', 'c']
>>> def help_build_query(l):
...     return "http://server/q.py?{}=aaaa&{}=bbb&{}=ccc".format(*l)
...
>>> help_build_query(a)
'http://server/q.py?a=aaaa&b=bbb&c=ccc'
>>>

a是已拆分的列表。{}用作占位符。*称为splat运算符,它使列表中的每个变量成为函数的参数。你知道吗

相关问题 更多 >