【问题标题】:How do I read the checklists from Trello using python如何使用 python 从 Trello 读取清单
【发布时间】:2020-03-06 06:29:55
【问题描述】:

我正在使用 python 从 Trello 板上检索某些卡片。这是我的代码:

import trello
from trello import TrelloClient
import datetime
from dateutil.parser import parse
import re
import pandas as pd

client = TrelloClient(
api_key=mykey,
api_secret=myapisecret,
token=mytoken)

start_date = '2019-10-23 09:00:00'
end_date = '2019-10-25 14:00:00'

date = []
description = []
tag = []
comment = []
card_name = []
username = []

all_boards = client.list_boards()
minutes_board = all_boards[1]

for lists in minutes_board.list_lists():
    my_list = minutes_board.get_list(lists.id)   
    for card in my_list.list_cards():
        for j in range(len(card.comments)):
            comment_date = parse(card.comments[j]['date']).strftime("%Y-%m-%d %H:%M:%S")
            if comment_date >= start_date and comment_date <= end_date:
                text = card.comments[j]['data']['text']

在卡片信息之上,我想从清单中获取常备项目并获取文本。我尝试了清单方法,但我不知道如何从那里读取属性。

我试过了:

for lists in minutes_board.list_lists():
    my_list = minutes_board.get_list(lists.id)   
    for card in my_list.list_cards():
        for cl in card.fetch_checklists():
            print(cl)

而 cl 看起来像这样:

<Checklist 5be2356788378207b77cf02a>

我如何访问清单的信息?

谢谢。

【问题讨论】:

  • 你遇到了什么错误?
  • 我没有收到任何错误,我只是不知道如何获取每张卡的清单上的常备项目。
  • 你希望你的最终结果是什么?所选棋盘上每张卡片的 cmets 列表还是什么?
  • 一个包含常设项目文本的数组(如“文本”数组)

标签: python trello


【解决方案1】:

这是一个函数,它接受一个 Trello 板对象,例如您的 minutes_board,并输出一个类似 JSON 的对象。 IE。 dict 以您的棋盘列表名称为键,其值也是字典,代表各自列表下的一张卡片。每张卡片都由他们的卡片 id 键入,其值有 2 个字段:1) 卡片的标题/主题,以及 2) 包含该卡片所有 cmets 文本的 Python 列表。

def get_comment_texts(tboard):
    board_content = {}
    for ls in tboard.list_lists():
        list_content = {}
        for card in ls.list_cards():
            card_info = {}
            cid = card.id
            card_info['title'] = card.name
            comments = card.fetch_comments()
            texts = []
            for c in comments:
                texts.append(c['data']['text'])
            card_info['comments'] = texts
            list_content[cid] = card_info
        board_content[ls.name] = list_content
    return board_content

然后您可以使用类似 Python 的 pprint 模块来显示返回对象以便于查看。

注意:我没有费心对创建日期进行过滤,我相信您应该能够自己弄清楚。但是,如果您需要帮助,请告诉我。

【讨论】:

    【解决方案2】:
    import trello
    from trello import TrelloClient
    import datetime
    from dateutil.parser import parse
    import re
    import pandas as pd
    
    client = TrelloClient(
    api_key=mykey,
    api_secret=myapisecret,
    token=mytoken)
    
    start_date = '2019-10-23 09:00:00'
    end_date = '2019-10-25 14:00:00'
    
    date = []
    description = []
    tag = []
    comment = []
    card_name = []
    username = []
    
    all_boards = client.list_boards()
    minutes_board = all_boards[1]
    
    for lists in minutes_board.list_lists():
        my_list = minutes_board.get_list(lists.id)   
        for card in my_list.list_cards():
            for cl in card.fetch_checklists():
                for k in len(cl)
                    print(cl[k].items)
            for j in range(len(card.comments)):
                comment_date = parse(card.comments[j]['date']).strftime("%Y-%m-%d %H:%M:%S")
                if comment_date >= start_date and comment_date <= end_date:
                    text = card.comments[j]['data']['text']
    

    添加的代码是

    for cl in card.fetch_checklists():
         for k in len(cl)
             print(cl[k].items)
    

    cl[k].items 是一个包含“名称”(检查项的内容)等数据的列表。这就是我一直在寻找的。​​p>

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 2020-02-05
      • 2016-02-27
      • 2021-11-15
      相关资源
      最近更新 更多