我有一个list从文本文件附加到 a 的脚本。然后我使用''.join(mylist)转换为类型,str以便我可以查询DynamoDB表中的str. 这似乎工作,直到我查询表。我注意到我收到了空洞的回复。打印出每个 之后str,我注意到它们被垂直返回。如何正确格式化字符串以便我的调用DynamoDB成功?import boto3from boto3.dynamodb.conditions import Key, Attrdynamo = boto3.resource('dynamodb')table = dynamo.Table('mytable')s3.Bucket('instances').download_file('MissingInstances.txt')with open('MissingInstances.txt', 'r') as f: for line in f: missing_instances = [] missing_instances.append(line) unscanned = ''.join(missing_instances) for i in unscanned: print(i) response = table.query(KeyConditionExpression=Key('EC2').eq(i)) items = response['Items'] print(items)Contents of MissingInstances.txt:i-xxxxxxi-yyyyyyi-zzzzzzetc etcOutput of print(i):i-xxxxxi-yyyyyetc etc的输出print(items):[][][]etc etc期望的输出:i-xxxxxxi-yyyyyyetc etc
3 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
Print 在每次调用时自动引入一个新行。它不像 Java 的System.out#print(String). 例如,当我运行这个时,我得到这个:
for c in 'adf':
print(c)
a
d
f
这是因为在 python 中(出于某种原因或其他原因),字符串是可迭代的。
我不确定你的代码实际上试图做什么。我不熟悉这个 Boto3 库。但是假设该部分i-xxxxx被分解为iand xxxxx,我称之为idand other_stuff。然后,
for the_id in ids:
print(f'{the_id}-{ids}')
添加回答
举报
0/150
提交
取消