繁体   English   中英

以字典格式打印循环的 output

[英]Print output of loop in dictionary format

我的程序查询数据库并返回今天、明天和即将到来的所有生日。 然而,我希望即将到来的生日在一行而不是几行。 它是这样的:生日在不同的行上:

1

这是我的代码:

def in_a_week():
    coming_up = datetime.now()

    with open('bDay_db.json')as read_file:
        bdays = json.load(read_file)

    for x in range(2, 5):
        soon = (coming_up + timedelta(days=x))
        upcoming = (soon.strftime('%b %d'))
        #pprint.pprint(upcoming)

   

        if upcoming in bdays.values():
            print()
            print("Birthday match found in next couple of days: ")
            print()
            print([kv for kv in bdays.items() if kv[1] in upcoming])
            print()
def in_a_week():
    coming_up = datetime.now()

    with open('bDay_db.json')as read_file:
        bdays = json.load(read_file)

    for x in range(2, 5):
        soon = (coming_up + timedelta(days=x))
        upcoming = (soon.strftime('%b %d'))
        #pprint.pprint(upcoming)

   
        print("Birthday match found in next couple of days: ")
        if upcoming in bdays.values():
            print([kv for kv in bdays.items() if kv[1] in upcoming], end = ", ")
        print()

这应该工作!

出了什么问题? 正如您所说,您希望日期在同一行。 因此,首先,您使用的是打印语句,它在 output 中添加了一个换行符。 此外, Birthday match found in next couple of days:语句在循环中。 那应该只在开头打印,对吗?

解决方法是什么? 我首先删除了打印语句。 然后end=", "确保在 print 语句之后,您的下一个 output 保持在同一行。 在这里,为了增加功能,我在里面放了一个逗号,所以看起来很漂亮。 另外,正如我已经提到的, Birthday match found in next couple of days:被置于循环之外。 最后,我放了一个空白打印语句,以确保您的 output 在您退出循环后换行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM