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

  • the one am radio

    the one am r

    6 Mayıs 2006
  • tutvid

    tutvid

    19 AĞUSTOS 2006
  • FusioNGamiing

    FusioNGamiin

    10 Temmuz 2007