2

のような出力を得たい

{'episodes': [{'season': 1, 'plays': 0, 'episode': 11}, {'season': 2, 'plays': 0, 'episode': 1}], 'title': 'SHOWNAME1', 'imdb_id': 'tt1855924'} 
{'episodes': [{'season': 4, 'plays': 0, 'episode': 11}, {'season': 5, 'plays': 0, 'episode': 4}], 'title': 'SHOWNAME2', 'imdb_id': 'tt1855923'} 
{'episodes': [{'season': 6, 'plays': 0, 'episode': 11}, {'season': 6, 'plays': 0, 'episode': 12}], 'title': 'SHOWNAME3', 'imdb_id': 'tt1855922'}

しかし、辞書内の値に追加する必要があるため、追加行に固執しています。タイトルが辞書にない場合、そのタイトルの最初のエントリが作成されます

{'episodes': [{'season': 1, 'plays': 0, 'episode': 12}], 'title': 'Third Reich: The Rise & Fall', 'imdb_id': 'tt1855924'}

次に、同じタイトルが再び表示される場合は、シーズン、エピソード、演劇を既存の行に挿入します。スクリプトは次のショーを実行し、新しいエントリを作成するか、そのタイトルのエントリが既にある場合は再度追加します....など

if 'title' in show and title in show['title']:
    ep = {'episode': episode, 'season': season}
    ep['plays'] = played
    ?????????????????????.append(ep)
else:
    if imdb_id:
        if imdb_id.startswith('tt'):
            show['imdb_id'] = imdb_id
    if thetvdb != "0":
        show['tvdb_id'] = thetvdb

    if title:
        show['title'] = title
    ep = {'episode': episode, 'season': season}
    ep['plays'] = played
    show['episodes'].append(ep)

Martijn Pieters に感謝します。

    if title not in shows:
        show = shows[title] = {'episodes': []}  # new show dictionary
    else:
        show = shows[title]
    if 'title' in show and title in show['title']:
            ep = {'episode': episode, 'season': season}
            ep['plays'] = played
            show['episodes'].append(ep)
    else:

これにより、必要な出力が得られますが、正しく見えることを確認したかっただけです

4

1 に答える 1