DynamoDB JSON разбор ответов печатает по вертикали - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть скрипт, который сканирует таблицу DynamoDB, в которой хранятся мои экземпляры.Затем я пытаюсь выполнить запрос к другой таблице, чтобы узнать, имеет ли она тот же экземпляр, и получить все атрибуты метаданных в основной таблице.Когда я выполняю запрос с использованием идентификатора экземпляра из начального сканирования первой таблицы, я замечаю, что каждый символ строки идентификатора экземпляра печатается на новой строке, а не на всей строке в одной строке.Я запутался, как это исправить.Ниже мой код, пример вывода и ожидаемый вывод.

CODE:

import boto3
import json
from boto3.dynamodb.conditions import Key, Attr

def table_diff():
    dynamo = boto3.client('dynamodb')
    dynamodb = boto3.resource('dynamodb')

    table_missing = dynamodb.Table('RunningInstances')

    missing_response = dynamo.scan(TableName='CWPMissingAgent')

    for instances in missing_response['Items']:
        instance_id = instances['missing_instances']['S']
        # This works how I want, prints i-xxxxx
        print(instance_id)

        for id in instance_id:
            # This does not print how I want (vertically)
            print(id)
            query_response = table_missing.query(KeyConditionExpression=Key('ID').eq(id))

OUTPUT:

i
-
x
x
x
x
x

EXPECTED OUTPUT:

i-xxxxx
etc etc 

1 Ответ

0 голосов
/ 05 декабря 2018

instance_id - это строка.Таким образом, когда вы зацикливаетесь на нем (for id in instance_id), вы фактически зацикливаетесь на каждом символе в строке и распечатываете их по отдельности.

Почему вы пытаетесь зациклить его, когда говорите, что простопечать дает правильный результат?

...