猿问

在尝试写入 str 时垂直打印并且对 DynamoDB 的 API 调用失败

我有一个list从文本文件附加到 a 的脚本。然后我使用''.join(mylist)转换为类型,str以便我可以查询DynamoDB表中的str. 这似乎工作,直到我查询表。我注意到我收到了空洞的回复。打印出每个 之后str,我注意到它们被垂直返回。如何正确格式化字符串以便我的调用DynamoDB成功?


import boto3

from boto3.dynamodb.conditions import Key, Attr


dynamo = 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-xxxxxx

i-yyyyyy

i-zzzzzz

etc etc

Output of print(i):


i

-

x

x

x

x

x


i

-

y

y

y

y

y


etc etc

的输出print(items):


[]

[]

[]

etc etc

期望的输出:


i-xxxxxx

i-yyyyyy

etc etc


GCT1015
浏览 103回答 3
3回答

慕尼黑5688855

Print 在每次调用时自动引入一个新行。它不像 Java 的System.out#print(String). 例如,当我运行这个时,我得到这个:for c in 'adf':    print(c)adf这是因为在 python 中(出于某种原因或其他原因),字符串是可迭代的。我不确定你的代码实际上试图做什么。我不熟悉这个 Boto3 库。但是假设该部分i-xxxxx被分解为iand xxxxx,我称之为idand other_stuff。然后,for the_id in ids:    print(f'{the_id}-{ids}')

喵喵时光机

在将它们附加到列表之前尝试剥离换行符。例如:missing_instances.append(line.rstrip())
随时随地看视频慕课网APP

相关分类

Python
我要回答