2017-03-28 2 views
0

나는 하나의 스캔 또는 다음과 같이 조회 할 수 있습니다 알고속성 이름을 하드 코딩하지 않고 FilterExpression을 생성하는 방법은 무엇입니까?

response = table.scan(
    FilterExpression=Attr('first_name').begins_with('J') & 
        Attr('account_type').eq('super_user')) 

어떻게이 하드는 속성 이름을 코딩없이해야합니까? 명확히하기 위해, 그러한 사전이 주어지면 나는 테이블 스캔을 원한다.

attr_dict = {"foo":42, "bar":52} 

response = table.scan(
     FilterExpression=Attr('foo').eq(42) & 
         Attr('bar').eq(52)) 

는이 SQL이 있다면 하나는 그것을 할 것이지만, 그들이

"select * from table where {} = {} and {} = {}".format(a,b,x,y). 

을 할 수있는 제가하는 데 문제는 내가 어떤 종류의 루프를 사용하여 두 & 것이 방법이다.

답변

1

사전의 항목을 반복하여 FilterExpression을 만들면됩니다. 부울 논리를 사용하여 다음과 같이 개별 표현식을 결합 할 수 있습니다 (필터 표현식 문자열을 직접 작성하십시오).

foo = 42 AND bar = 52 
+0

전체 구문을 표시 할 수 있습니까? FilterExpression은 문자열을 허용합니까? – taesu

+0

나는 내가 원하는 것을 얻을 수 있었다. FilterExpression은 문자열을 허용합니다. 값이'ExpressionAttributeValues'에서 나온 것처럼 보입니다. 감사합니다 – taesu

+0

이것이 당신을 위해 일한 경우에, upvote를주십시오! 감사. –

관련 문제