使用set.add时,Set不会更新,并且脚本就像是继续执行一样

如何解决使用set.add时,Set不会更新,并且脚本就像是继续执行一样

这是我正在测试的完整代码。它从Trello中获取一张牌列表,然后遍历每张牌上的操作列表,以查找在最后一天移动的牌。然后,从这些卡片中收集统计信息。

但是,当成员set()中未列出成员时,脚本将执行members.add()将名称添加到set()中。当我的脚本到达那里时,它将执行members.add(),但它不会更新成员,而是会更新到for循环中的下一项。

我真的对此感到迷惑,没有在这里和Google上找到与该问题接近的任何东西。我尝试了一个简化的版本,基本上只有两个for循环,没有复杂的if语句,但是它起作用了,但是我没有从该测试中得出任何好的结论。

谢谢

from reporting import report_init,report,Tech
from trello import TrelloApi
import logging
from config import __config__
import os
from datetime import datetime,timedelta


logging.basicConfig(filename=f"debug_{datetime.strftime(datetime.now(),'%Y-%m-%d_%H-%M-%S')}.log",level=logging.DEBUG,format='%(asctime)s - %(levelname)s - %(message)s')
log = logging.getLogger(__name__)
log.info(f"{__name__} just started.")
studios_dic = __config__()
tr = TrelloApi(apikey=os.environ["TRELLO_API_KEY"],token=os.environ["TRELLO_API_TOKEN"])
arg_list = ["[DIGI]","[Print]","[IC]","[CS]","[Frame]","[Cadre]","[Canvas]","[Canevas]","[Plexi]"]
key_list = ["# Digitals","# Prints","# IC","# CS","# F","# C","# P"]

yesterday = (datetime.strptime(str(datetime.now())[:-7],'%Y-%m-%d %H:%M:%S') - timedelta(days=1)).isoformat()
current_list_cards = tr.lists.get_card_filter(filter="open",idList=os.environ["TRELLO_LIST_ID"])
cards_completed = set()
members = set()
members_stats = []
for card in current_list_cards:
    card_checklist = tr.cards.get_checklist(card_id_or_shortlink=card["id"])
    card_actions = tr.cards.get_action(card_id_or_shortlink=card["id"])
    for action in card_actions:
        if action["date"] > yesterday and action["type"] == "updateCard":
            print("Action could be logged if it marked order as completed")
            try:
                if (action["data"]["listAfter"]["name"] == "Commandes Faites" or action["data"]["listAfter"]["name"] == "Check") and action["data"]["listBefore"]["name"] == "Commandes en Retouche":
                    print("Action should be logged if members exists")
                    cards_completed.add(action["data"]["card"]["name"])
                    if action["memberCreator"]["fullName"] in members:
                        print("Member Exists")
                        for member in members_stats:
                            if member.name == action["memberCreator"]["fullName"]:
                                for check in card_checklist:
                                    log.debug(f"Adding items in checklist to {action['memberCreator']['fullname']}")
                                    for item in check["checkItems"]:
                                        log.debug(f"{item} - {item['name']}")
                                        for i,arg in enumerate(arg_list):
                                            if arg in item["name"]:
                                                member.stats[key_list[i]] += 1
                    else:
                        print("Creating Member")
                        members.add(action["memberCreator"]["fullname"])  # line that doesn't work
                        members_stats.append(Tech(action["memberCreator"]["fullname"]))
                        for check in card_checklist:
                            log.debug(f"Adding items in checklist to {action['memberCreator']['fullname']}")
                            for item in check["checkItems"]:
                                log.debug(f"{item} - {item['name']}")
                                for i,arg in enumerate(arg_list):
                                    if arg in item["name"]:
                                        member.stats[key_list[i]] += 1
            except KeyError as ke:
                log.exception(f"{ke}")
                continue

解决方法

这是一个简单的KeyError。在某些地方,键fullName被拼写为fullname。关闭这个。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?