반응형
웹 POST 매개 변수를 빌드하기 위해 urllib.urlencode
를 사용하고 있지만 None
이외의 값이 존재하는 경우에만 추가하고 싶은 값이 몇 가지 있습니다.
apple = 'green'
orange = 'orange'
params = urllib.urlencode({
'apple': apple,
'orange': orange
})
잘 작동하지만 orange
변수를 선택 사항으로 설정하면 매개 변수에 추가되지 않도록하려면 어떻게해야합니까? 다음과 같은 것 (의사 코드) :
apple = 'green'
orange = None
params = urllib.urlencode({
'apple': apple,
if orange: 'orange': orange
})
나는 이것이 충분히 명확하기를 바랍니다. 누구든지 이것을 해결하는 방법을 알고 있습니까?
해결 방법
초기 dict
를 만든 후 키를 별도로 추가해야합니다.
params = {'apple': apple}
if orange is not None:
params['orange'] = orange
params = urllib.urlencode(params)
파이썬에는 키를 조건부로 정의하는 구문이 없습니다. 이미 모든 것을 순서대로 가지고 있다면 사전 이해력을 사용할 수 있습니다.
params = urllib.urlencode({k: v for k, v in (('orange', orange), ('apple', apple)) if v is not None})
그러나 그것은 매우 읽기 어렵습니다.
params = urllib.urlencode({
'apple': apple,
**({'orange': orange} if orange is not None else {})
})
참조 페이지 https://stackoverflow.com/questions/14263872
반응형
'파이썬' 카테고리의 다른 글
파이썬 폴더의 모든 CSV 파일을 반복합니다. (0) | 2021.01.28 |
---|---|
파이썬 Numpy : 2D 배열에서 임의의 행 집합 가져 오기 (0) | 2021.01.28 |
파이썬 Python 3에서 개별 바이트 반복 (0) | 2021.01.27 |
파이썬 Python matplotlib 다중 막대 (0) | 2021.01.27 |
파이썬 python-requests를 사용하여 파일 크기를 가져 오면서 헤더 만 가져옵니다. (0) | 2021.01.27 |
댓글