Python 3 - 我正在使用for循环来打印字典中的值。 rawData中的一些字典有" RecurringCharges"作为一个空列表。我正在检查列表是否为空并且填充了" 0.0"如果是空的或者是#34;金额"如果填充。
在For循环中创建IF语句会显示一个新的print语句并打印到一个新行。我希望它是一条连续的线。
for each in rawData['ReservedInstancesOfferings']:
print('PDX', ','
, each['InstanceType'], ','
, each['InstanceTenancy'], ','
, each['ProductDescription'], ','
, each['OfferingType'], ','
, each['Duration'], ','
, each['ReservedInstancesOfferingId'], ','
, each['FixedPrice'], ',',
)
if not each['RecurringCharges']:
print("0.0")
else:
print(each['RecurringCharges'][0].get('Amount'))
答案 0 :(得分:1)
如果使用Python 3,请在每个print语句的末尾添加逗号,然后结束="",例如:
print(each['RecurringCharges'][0].get('Amount'), end="")
答案 1 :(得分:0)
我在发布后不久就找到了答案:在第一个print语句中包含参数end =''。
for each in rawData['ReservedInstancesOfferings']:
print('PDX', ','
, each['InstanceType'], ','
, each['InstanceTenancy'], ','
, each['ProductDescription'], ','
, each['OfferingType'], ','
, each['Duration'], ','
, each['ReservedInstancesOfferingId'], ','
, each['FixedPrice'], ',', end=''
)
if not each['RecurringCharges']:
print("0.0")
else:
print(each['RecurringCharges'][0].get('Amount'))
答案 2 :(得分:0)
使用stdout!
而不是使用打印功能import sys
sys.stdout.write('this is on a line ')
sys.stdout.write('and this is on that same line!')
使用sys.stdout.write(),如果你想要一个换行符,你将\ n放在字符串中,否则,它就在同一行。
答案 3 :(得分:0)
当然,你可以关注How to print without newline or space?
但在这种情况下,最好将表达式作为三元表达式中的最后一个参数插入:
, each['ReservedInstancesOfferingId'], ','
, each['FixedPrice'], ','
, "0.0" if not each['RecurringCharges'] else each['RecurringCharges'][0].get('Amount')
)