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

  • BgirlNilaya

    BgirlNilaya

    29 EKİM 2008
  • huyked

    huyked

    28 Mart 2008
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011