我需要在Python中生成对PHP解析器有效的URL编码字符串

我需要在Python中生成对PHP解析器有效的URL编码字符串,php,python,urlencode,Php,Python,Urlencode,我需要在Python中生成与在PHP中相同的输出,可能吗 Php代码: <?php $items = array( array( 'item_key_a' => 'item_value_a') ); $payload = array( 'i_key' => 'i_value', 'items' => $items, ); echo http_build_query($payload); ?> item = {} item['ite

我需要在Python中生成与在PHP中相同的输出,可能吗

Php代码:

<?php 

$items = array(
   array(
   'item_key_a' => 'item_value_a')
);

$payload = array(
   'i_key' => 'i_value',
   'items' => $items,
);

echo http_build_query($payload);
 ?>
item = {}
item['item_key_a'] = 'item_value_a'

data = {}
data['i_key'] = 'i_value'
data['items'] = [item]

import urllib
print urllib.urlencode(data)
已解码的输出URL:

i_key=i_value&items[0][item_key_a]=item_value_a
items=[{'item_key_a':+'item_value_a'}]&i_key=i_value
Python代码:

<?php 

$items = array(
   array(
   'item_key_a' => 'item_value_a')
);

$payload = array(
   'i_key' => 'i_value',
   'items' => $items,
);

echo http_build_query($payload);
 ?>
item = {}
item['item_key_a'] = 'item_value_a'

data = {}
data['i_key'] = 'i_value'
data['items'] = [item]

import urllib
print urllib.urlencode(data)
输出URL编码:

i_key=i_value&items%5B0%5D%5Bitem_key_a%5D=item_value_a
items=%5B%7B%27item_key_a%27%3A+%27item_value_a%27%7D%5D&i_key=i_value
已解码的输出URL:

i_key=i_value&items[0][item_key_a]=item_value_a
items=[{'item_key_a':+'item_value_a'}]&i_key=i_value

因此,在Python中,我没有得到PHP应用程序所需的有效URL编码。

Python urlencode不处理嵌套dict。您需要以类似于此问题的方式自己编写:


现在似乎有一个用于在Python中处理此问题的库


是的,看到了答案,对我没有帮助,好吧,我会自己写的