2016-10-19 2 views
0

DynamoDB에서 데이터를 다운로드 할 때 문제가 있습니다. 필자는 Python SDK와 AWS CLI (aws dynamodb 스캔 - 테이블 이름 경보)를 시도했지만 매번 동일한 문제가 발생했습니다. 누구든지 그 원인이 무엇인지 알 수 있습니까?DynamoDB에서 잘못된 순서로 데이터 가져 오기

출력 가져

{ 
     "FRE": { 
      "S": "1" 
     }, 
     "MB": { 
      "S": "0" 
     }, 
     "TW": { 
      "S": "1" 
     }, 
     "FNB": { 
      "S": "0" 
     }, 
     "Date": { 
      "S": "2016-10-19 09:04:47.083456" 
     }, 
     "TD2": { 
      "S": "1" 
     }, 
     "TD1": { 
      "S": "1" 
     }, 
     "TB": { 
      "S": "1" 
     } 
    } 

출력 필수

{ 
     "Date": { 
      "S": "2016-10-19 09:04:47.083456" 
     }, 

     "FRE": { 
      "S": "1" 
     }, 
     "MB": { 
      "S": "0" 
     }, 
     "TW": { 
      "S": "1" 
     }, 
     "FNB": { 
      "S": "0" 
     }, 
     "TD2": { 
      "S": "1" 
     }, 
     "TD1": { 
      "S": "1" 
     }, 
     "TB": { 
      "S": "1" 
     } 
    } 

감사 와 커스 알리 칸

+0

DynamoDB 형식의 스캔 결과를 정렬하려는 경우 http://stackoverflow.com/q/9297326/1428388 – jbird

답변

0

당신이 사전 객체를 생성 질서를 유지하는의 문제가하면, 그것은 반복하지 않는 추가 된 요소와 관련하여 순서대로.

#So we have to create Ordered dict you can use collection package as follow's 

from collections import OrderedDict 
data_dict = OrderedDict() 
data_dict["Date"] = {'S': '2016-10-19 09:04:47.083456'} 
data_dict["FRE"] = {'S': '1'} 
data_dict["MB"] = {'S': '0'} 
data_dict["TW"] = {'S': '1'} 
data_dict["FNB"] = {'S': '0'} 
data_dict["TD2"] = {'S': '1'} 
data_dict["TD1"] = {'S': '1'} 
data_dict["TB"] = {'S': '1'} 

output: 
#It maintain order of data inserted: 
print data_dict 
OrderedDict([('Date', {'S': '2016-10-19 09:04:47.083456'}), ('FRE', {'S': '1'}), ('MB', {'S': '0'}), ('TW', {'S': '1'}), ('FNB', {'S': '0'}), ('TD2', {'S': '1'}), ('TD1', {'S': '1'}), ('TB', {'S': '1'})]) 

이제 데이터 순서대로 디렉토리의 순서를 유지하게됩니다. 당신도 순서대로 반복 할 수 있습니다.

+0

제안 된대로 수행하려고하면 다음과 같은 오류 메시지가 나타납니다. 당신에 의해. tabel = OrderedDict() table.put_item ( AttributeError : 'OrderedDict'객체에 'put_item'속성이 없습니다. – user3831290

+0

사용 방법을 설명 할 수 있습니까? 위와 같이 사용해야합니다. –

관련 문제