DynamoDB JSON响应解析垂直打印

时间:2018-12-05 16:51:38

标签: json python-3.x amazon-dynamodb boto3

我有一个脚本可以扫描存储实例ID的DynamoDB表。然后,我尝试查询另一个表以查看它是否也具有相同的实例,并在主表中获取所有元数据属性。当我使用第一个表的初始扫描中的实例ID遍历查询时,我注意到实例ID字符串的每个字符都被打印到新行,而不是一行中的整个字符串。我很困惑如何解决此问题。以下是我的代码,示例输出和预期的输出。

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 :(得分:1)

instance_id是一个字符串。因此,当您遍历字符串(for id in instance_id)时,实际上是遍历字符串中的每个字符,并分别打印出来。

当您说仅打印它会产生正确的结果时,为什么还要尝试遍历它?