2016-10-14 6 views
2

Раньше я был мастером запросов SQL в MySQL и SQL-сервере, но я далек от освоения nosql и dynamo db, просто кажется очень упрощенным , В любом случае, никаких разглагольствований, я пытаюсь просто получить самую последнюю запись в db динамо или проанализировать результаты, которые я получаю, чтобы я мог снять последний элемент с вершины.Использование Boto3 в python для получения результатов из dynamodb и анализа в пригодную для использования переменную или словарь

это мой код

from __future__ import print_function # Python 2/3 compatibility 
import boto3 
import json 
import decimal 
from boto3.dynamodb.conditions import Key, Attr 

# Helper class to convert a DynamoDB item to JSON. 
class DecimalEncoder(json.JSONEncoder): 
    def default(self, o): 
     if isinstance(o, decimal.Decimal): 
      if o % 1 > 0: 
       return float(o) 
      else: 
       return int(o) 
     return super(DecimalEncoder, self).default(o) 

dynamodb = boto3.resource('dynamodb', region_name='us-west-2', 
endpoint_url="https://foo.foo.foo/aws") 

table = dynamodb.Table('footable') 
response = table.scan(
    Select="ALL_ATTRIBUTES", 
    ) 

for i in response['Items']: 
    print(json.dumps(i, cls=DecimalEncoder)) 

Мои результаты много следующих, что я хотел бы либо разобрать, или если кто-то знает код, чтобы просто выбрать верхний пункт, который был бы большим.

{"MinorID": 123, "Location": "123westsideave"} 
{"MinorID": 321, "Location": "456nowhererd"} 
{"MinorID": 314, "Location": "123westsideave"} 

ответ

2

в конце моего кода, где он говорит "печать (json.dumps (я, ЦБС = DecimalEncoder))" Я изменил, что к «г = ast.literal_eval ((json.dumps (I, ЦБС = DecimalEncoder))) «Я также добавил import ast наверху. Он работал красиво.

import ast 

table = dynamodb.Table('footable') 
response = table.scan(
    Select="ALL_ATTRIBUTES", 
    ) 

for i in response['Items']: 
    d = ast.literal_eval((json.dumps(i, cls=DecimalEncoder))) 

 Смежные вопросы

  • Нет связанных вопросов^_^