为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

GCT1015 2021-06-10 17:58:04
我有一个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}')


查看完整回答
反对 回复 2021-06-22
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

在将它们附加到列表之前尝试剥离换行符。

例如:

missing_instances.append(line.rstrip())


查看完整回答
反对 回复 2021-06-22
  • 3 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信