2011-02-03 1 views
1

Мне нужно сгенерировать такой же вывод в Python, как и в PHP, возможно?Мне нужно сгенерировать urlencoded строку в 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); 
?> 

Выход urlencoded:

i_key=i_value&items%5B0%5D%5Bitem_key_a%5D=item_value_a 

Выход urldecoded: Код

i_key=i_value&items[0][item_key_a]=item_value_a 

Python:

item = {} 
item['item_key_a'] = 'item_value_a' 

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

import urllib 
print urllib.urlencode(data) 

Выход urlencoded:

items=%5B%7B%27item_key_a%27%3A+%27item_value_a%27%7D%5D&i_key=i_value 

Выход urldecoded:

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

Так в Python я не получаю правильный urlencoding, что мне нужно для PHP приложений.

ответ

1

Python urlencode не обрабатывает вложенный dict. Вы должны написать его самостоятельно таким образом, как представлено на этот вопрос:

+0

да , видел, что ответ, не помогает мне, хорошо нормально будет писать мои собственные –

 Смежные вопросы

  • Нет связанных вопросов^_^