Как мне прочитать контрольные списки из Trello, используя Python - PullRequest
0 голосов
/ 10 ноября 2019

Я использую 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>

Как я могу получить доступ к информации контрольного списка?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2019
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 - это список с данными, такими как «имя» (содержимое элемента проверки). Это то, что я искал.

0 голосов
/ 10 ноября 2019

Вот функция, которая берет объект платы Trello, например, ваш minutes_board, и выводит JSON-подобный объект. Т.е. dict, на который указывают имена списков ваших досок, значения которых также являются словарями, представляющими одну карту под соответствующим списком. Каждая карта имеет свою карточку id, с 2 полями для ее значения: 1) название / тема карты и 2) список 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

Вызатем можно использовать что-то вроде модуля pprint в Python для отображения возвращаемого объекта для более удобного просмотра.

Примечание: я не удосужился сделать фильтр по дате создания, который, я полагаю, вы сможете выяснить самостоятельно. Но если вам нужна помощь, просто дайте мне знать.

...