SORU
22 AĞUSTOS 2010, Pazar


Python, ters fonksiyon urllib.urlencode

nasıl urllib işledikten sonra veri dönüştürebilirsiniz.dict için urlencode ? urllib.urldecode yok.

CEVAP
22 AĞUSTOS 2010, Pazar


urlencode the docs dediği gibi,

Urlparse modülü sağlar fonksiyonları parse_qs() ve parse_qsl() hangi sorgu dizeleri ayrıştırmak için kullanılır Python veri yapıları.

(Eski Python sürümleri için cgi modülünde) idi. Bu yüzden, örneğin:

>>> import urllib
>>> import urlparse
>>> d = {'a':'b', 'c':'d'}
>>> s = urllib.urlencode(d)
>>> s
'a=b&c=d'
>>> d1 = urlparse.parse_qs(s)
>>> d1
{'a': ['b'], 'c': ['d']}

Özgün sözlük arasında bariz fark d ve "yuvarlak tökezledi" d1 ikincisi olan bir tek öğe, bu durumda)listelergibi değerler ... çünkü yok benzersizliğini garanti sorgu dizeleri ve önemli olabileceğini uygulamanıza hakkında neler birden fazla değer olması, verilen her bir anahtar (yani, listeler olmayacak hep münferit olanlar;-).

Alternatif olarak:

>>> sq = urlparse.parse_qsl(s)
>>> sq  
[('a', 'b'), ('c', 'd')]
>>> dict(sq)
{'a': 'b', 'c': 'd'}

çiftleri bir dizi alabilirsiniz (urlencode dict durumda korumak için var iken, böyle bir argüman, düzeni korur Bu durumda da kabul eder;-). Eğer bildiğiniz yok yinelenen "anahtarları", ya da umurunda değil varsa, o zaman (gibi oldum gösterilir) diyebilirsin dict bir sözlük olmayan listesi değerleri. Genel olarak, ancak, çiftleri eğer ne yapmak istediğinizi düşünün gerekir(Python sizin adınıza karar vermez; -) mevcut.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ColdfusTion

    ColdfusTion

    3 Aralık 2007
  • FILIPeeeK

    FILIPeeeK

    22 Mayıs 2006
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006