programing

파이썬에서 사전을 쿼리 문자열로 변환하는 방법은 무엇입니까?

powerit 2023. 7. 17. 21:27
반응형

파이썬에서 사전을 쿼리 문자열로 변환하는 방법은 무엇입니까?

사용후cgi.parse_qs()결과(사전)를 쿼리 문자열로 다시 변환하는 방법은 무엇입니까?비슷한 것을 찾고 있습니다.urllib.urlencode().

파이썬 3

urllib.parse.urlencode(query, doseq=False, [...])

매핑 개체 또는 strorbytes 개체를 포함할 수 있는 두 요소 튜플 시퀀스를 퍼센트 인코딩된 ASCII 텍스트 문자열로 변환합니다.

Python 3 문서

A dict매핑입니다.

레거시 파이썬

urllib.urlencode(query[,doseq])
매핑 개체 또는 두 요소 튜플 시퀀스를 "% 인코딩" 문자열로 변환...일련의key=value로 구분된 쌍.'&'문자...

Python 2.7 문서

python3에서는 약간 다릅니다.

from urllib.parse import urlencode
urlencode({'pram1': 'foo', 'param2': 'bar'})

출력:'pram1=foo&param2=bar'

python2 및 python3 호환성을 위해 다음을 시도하십시오.

try:
    #python2
    from urllib import urlencode
except ImportError:
    #python3
    from urllib.parse import urlencode

당신은 정확히 같은 것을 찾고 있습니다.urllib.urlencode()!

그러나 (와 구분하여) 호출할 때 사전 키는 고유한 조회 변수 이름이고 값은 각 이름에 대한목록입니다.

이 정보를 에 전달하려면 이러한 목록을 "플랫"해야 합니다.다음은 튜플의 목록 이해를 통해 수행할 수 있는 방법입니다.

query_pairs = [(k,v) for k,vlist in d.iteritems() for v in vlist]
urllib.urlencode(query_pairs)

아마도 당신은 다음과 같은 것을 찾고 있을 것입니다.

def dictToQuery(d):
  query = ''
  for key in d.keys():
    query += str(key) + '=' + str(d[key]) + "&"
  return query

사전을 사용하여 urlencode와 마찬가지로 쿼리 문자열로 변환합니다.쿼리 문자열에 마지막 "&"을 추가합니다.return query[:-1]문제가 있는 경우 수정합니다.

언급URL : https://stackoverflow.com/questions/7801991/how-to-convert-a-dictionary-to-query-string-in-python

반응형