| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Python URLエンコード」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==Python URLエンコード== [Python]{{category 文字化け}} *http://d.hatena.ne.jp/niiyan/20090509/1241884365 *http://hogeo.jp/blog/memo/2007/11/pythonurlliburlenc…」)
 
 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
==Python URLエンコード==
+
==[[Python URLエンコード]]==
[Python]{{category 文字化け}}
+
[[Python]] | [[Category:文字化け]]
 
*http://d.hatena.ne.jp/niiyan/20090509/1241884365
 
*http://d.hatena.ne.jp/niiyan/20090509/1241884365
 
*http://hogeo.jp/blog/memo/2007/11/pythonurlliburlencode.html
 
*http://hogeo.jp/blog/memo/2007/11/pythonurlliburlencode.html
20行目: 20行目:
 
  unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
 
  unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
 
=====区切り文字=====
 
=====区切り文字=====
  delims      = "<" | ">" | "#" | "%" | <">
+
  delims      = "&lt;" | "&gt;" | "#" | "%" | &lt;"&gt;
 
=====安全でない=====
 
=====安全でない=====
 
  unwise      = "{" | "}" | "|" | "\" | "^" | "[ " " ]" | "`"
 
  unwise      = "{" | "}" | "|" | "\" | "^" | "[ " " ]" | "`"
  
 
=====例1=====
 
=====例1=====
  >>> import urllib
+
  &gt;&gt;&gt; import urllib
  >>> urllib.quote('abc def')
+
  &gt;&gt;&gt; urllib.quote('abc def')
 
  'abc%20def'
 
  'abc%20def'
 
=====例2=====
 
=====例2=====
  >>> urllib.quote('http://test.com?p=abc def')
+
  &gt;&gt;&gt; urllib.quote('http://test.com?p=abc def')
 
  'http%3A//test.com%3Fp%3Dabc%20def'
 
  'http%3A//test.com%3Fp%3Dabc%20def'
 
=====例3=====
 
=====例3=====
  >>> urllib.quote('http://test.com?p=abc def', safe=';/?:@&=+$,')
+
  &gt;&gt;&gt; urllib.quote('http://test.com?p=abc def', safe=';/?:@&=+$,')
 
  'http://test.com?p=abc%20def'
 
  'http://test.com?p=abc%20def'
 
====urllib.urlencode====
 
====urllib.urlencode====
*タプル、またはディクショナリを、URL クエリー文字列として生成する
+
*タプル、またはディクショナリを、U[[R]]L クエリー文字列として生成する
  >>> import urllib
+
  &gt;&gt;&gt; import urllib
  >>> param = {'q':'test', 'id':'piroto'}
+
  &gt;&gt;&gt; param = {'q':'test', 'id':'piroto'}
  >>> urllib.urlencode(param)
+
  &gt;&gt;&gt; urllib.urlencode(param)
 
  'q=test&id=piroto'
 
  'q=test&id=piroto'
  
==HTML特殊文字のエスケープ、アンエスケープ==
+
==[[HTML]]特殊文字のエスケープ、アンエスケープ==
 
*xml.sax.saxutils の escape, unescape を利用すると便利
 
*xml.sax.saxutils の escape, unescape を利用すると便利
  >>> from xml.sax.saxutils import *
+
  &gt;&gt;&gt; from xml.sax.saxutils import *
  >>> escape("<&>")
+
  &gt;&gt;&gt; escape("&lt;&&gt;")
 
  '&lt;&amp;&gt;'
 
  '&lt;&amp;&gt;'
  >>> unescape("&lt;&amp;&gt;")
+
  &gt;&gt;&gt; unescape("&lt;&amp;&gt;")
  '<&>'
+
  '&lt;&&gt;'
  >>> unescape("&#39;",{"&#39;":"'"})
+
  &gt;&gt;&gt; unescape("&#39;",{"&#39;":"'"})
 
  "'"
 
  "'"

2020年2月16日 (日) 04:31時点における最新版

Python URLエンコード

Python |

urllib

urllib.quote

構文
quote(s, safe='/')
予約文字
reserved    = gen-delims / sub-delims
gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="
非予約文字
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
区切り文字
delims      = "<" | ">" | "#" | "%" | <">
安全でない
unwise      = "{" | "}" | "|" | "\" | "^" | "[ " " ]" | "`"
例1
>>> import urllib
>>> urllib.quote('abc def')
'abc%20def'
例2
>>> urllib.quote('http://test.com?p=abc def')
'http%3A//test.com%3Fp%3Dabc%20def'
例3
>>> urllib.quote('http://test.com?p=abc def', safe=';/?:@&=+$,')
'http://test.com?p=abc%20def'

urllib.urlencode

  • タプル、またはディクショナリを、URL クエリー文字列として生成する
>>> import urllib
>>> param = {'q':'test', 'id':'piroto'}
>>> urllib.urlencode(param)
'q=test&id=piroto'

HTML特殊文字のエスケープ、アンエスケープ

  • xml.sax.saxutils の escape, unescape を利用すると便利
>>> from xml.sax.saxutils import *
>>> escape("<&>")
'<&>'
>>> unescape("<&>")
'<&>'
>>> unescape("'",{"'":"'"})
"'"