我有一个脚本可以扫描存储实例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
答案 0 :(得分:1)
instance_id
是一个字符串。因此,当您遍历字符串(for id in instance_id
)时,实际上是遍历字符串中的每个字符,并分别打印出来。
当您说仅打印它会产生正确的结果时,为什么还要尝试遍历它?