社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

skaul05

skaul05 最近创建的主题
skaul05 最近回复了
6 年前
回复了 skaul05 创建的主题 » python:更新for循环中的父级

请尝试以下代码:

result_gantt = [{"id":1,"prj_id":808348,"parent":1},{"id":2,"prj_id":808352,"parent":2},{"id":3,"prj_id":808356,"parent":3},{"id":4,"prj_id":808361,"parent":4},{"id":5,"prj_id":808365,"parent":0},{"id":6,"prj_id":808370,"parent":0},{"id":7,"prj_id":808370,"parent":6},{"id":8,"prj_id":808370,"parent":7},{"id":9,"prj_id":808370,"parent":8}]

index = 0
prev_index = 0 # To maintain the index in case of consecutive id's
last_prj_id = ""
check = False # Check for consecutive id's
for row in result_gantt:
    current_prj_id = row['prj_id']
    parent = row['parent']
    parent = index

    if current_prj_id == last_prj_id:
        if not check: # Will be true in case of consecutive id's
            prev_index = last_id
        parent = last_id
        check = True
    else:
        check = False
        parent = index

    last_prj_id = row['prj_id']
    last_id = row['id']
    row['parent'] = parent if not check else prev_index

for i in result_gantt:
    print i

输出:

{'prj_id': 808348, 'id': 1, 'parent': 0}
{'prj_id': 808352, 'id': 2, 'parent': 0}
{'prj_id': 808356, 'id': 3, 'parent': 0}
{'prj_id': 808361, 'id': 4, 'parent': 0}
{'prj_id': 808365, 'id': 5, 'parent': 0}
{'prj_id': 808370, 'id': 6, 'parent': 0}
{'prj_id': 808370, 'id': 7, 'parent': 6}
{'prj_id': 808370, 'id': 8, 'parent': 6}
{'prj_id': 808370, 'id': 9, 'parent': 6}
6 年前
回复了 skaul05 创建的主题 » 如何使python自动发送电子邮件

因此,首先,当侦听器调用开始时,您没有添加任何中断,这样您的程序就会陷入那个循环中,并且没有任何条件可以出来。

尝试在下面的代码中添加断点

with Listener(on_press=on_press) as listener:
listener.join()

可以将特定字符添加为断点,或将某些行添加为断点。

如果您的邮件发送代码不起作用,请尝试使用gmail api。 Gmail API Docs

根据以下代码修改文件:

def on_press(key):
    logging.info(str(key))

def on_release(key):
    logging.info('{0} release'.format(key))
    if key == Key.caps_lock:
        return False

with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

您可以找到与上述代码相关的更多信息 here

如果无法接收邮件,可能是因为未启用POP/IMAP。遵循以下步骤:

  1. 登录你的Gmail帐户
  2. 转到“设置”,然后单击“转发”并弹出/imap部分。
  3. 在IMAP访问部分启用IMAP。