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

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008