파이썬 dict을 kwargs로 변환 하시겠습니까?


323

클래스 상속을 사용하여 키-값 쌍을 함께 추가하여 sunburnt (solr interface)에 대한 쿼리를 작성하려고합니다. sunburnt 인터페이스는 키워드 인수를 사용합니다. dict ({'type':'Event'})를 키워드 인수로 변환하려면 어떻게 (type='Event')해야합니까?

답변:


562

사용 더블 스타 (일명 더블 플랫? ) 연산자를 :

func(**{'type':'Event'})

에 해당

func(type='Event')

82
그리고 당신은 이미 그냥 "myDict"당신이라는 딕셔너리 객체가있는 경우 func(**myDict) .IEmyDict = {"type": "event"}
제임스 쿠리

3
이것은 파이썬 표준 문서에서 잘 설명되어 있습니다. stackoverflow.com/questions/1137161 도 참조하십시오 . (dmid : // juice_cobra_hush)
dreftymac

1
이는 특히 사전을 Swagger 모델 인스턴스로 변환 할 때 매우 유용합니다. 감사.
timmins

13

** 연산자가 도움이 될 것입니다.

**연산자는 dict 요소의 압축을 풀고 다음과 같이 **{'type':'Event'}처리됩니다.type='Event'

func(**{'type':'Event'})로 동일 func(type='Event')DICT 요소가 변환 될 것이다 즉 keyword arguments.

참고로

*목록 요소의 압축을 풀고로 취급됩니다 positional arguments.

func(*['one', 'two']) ~와 같다 func('one', 'two')


4

다음은 **연산자를 사용하여 사전의 값을 키워드 인수로 전달 하는 방법을 보여주는 완전한 예제 입니다.

>>> def f(x=2):
...     print(x)
... 
>>> new_x = {'x': 4}
>>> f()        #    default value x=2
2
>>> f(x=3)     #   explicit value x=3
3
>>> f(**new_x) # dictionary value x=4 
4
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.