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

  • Lamborghini

    Lamborghini

    13 Aralık 2005
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012
  • Photoshop Training Channel

    Photoshop Tr

    13 Temmuz 2012