46963


NEWS情報をDiscordで出したいのですがErrorが出ます

`AttributeError: object has no attribute 'category'`

[code]

    if message.content.startswith('/news'):
        RSS_URL = "https://headlines.yahoo.co.jp/rss/all-c_ent.xml"
        yahoo_news_dic = feedparser.parse(RSS_URL)
        await client.send_message(message.channel, yahoo_news_dic.feed.title)
        await client.send_message(message.channel, yahoo_news_dic.feed.link)
        await client.send_message(message.channel, yahoo_news_dic.feed.category)
    
[/code]


CC BY-SA 4.0
2018-07-25T11:53:11.617
46961
2018-07-25T13:39:50.037
29457
question
python3
AttributeError: object has no attribute 'category' RSS


パースしているRSSの `<channel>` タグ以下には `<category>` タグが無いようです。  
存在しない辞書のキーや属性にアクセスすると例外が発生します。  
この例外をキャッチして処理するか、例外が発生しない方法でアクセスする必要があります。

[`in`](https://docs.python.jp/3/reference/expressions.html#in) でチェックする例:

[code]

    #!/usr/bin/python3
    import feedparser
    RSS_URL = "https://headlines.yahoo.co.jp/rss/all-c_ent.xml"
    yahoo_news_dic = feedparser.parse(RSS_URL)
    
    if "category" in yahoo_news_dic.feed:
        print("カテゴリ:", yahoo_news_dic.feed["category"])
    
[/code]

* * *

[`get`](https://docs.python.jp/3/library/stdtypes.html?highlight=get#dict.get)
でデフォルト値を指定する例:

[code]

    print("カテゴリ:", yahoo_news_dic.feed.get("category", "不明"))
    
[/code]


CC BY-SA 4.0
2018-07-25T13:39:50.037
46963
2018-07-25T13:39:50.037
3054
46961
answer