[問題] python程式問題請求幫忙

看板Python作者 (ymca)時間8年前 (2016/05/12 23:26), 8年前編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
我沒有學過python 只有使用matlab的經驗 不過我有在用一個python寫成的程式幫我自動生成rss的全文 我發現了一個bug 不過這個程式似乎已經沒有人在維護了 所以想請大家幫忙做一個修改 當程式生成全文rss的時候 會擷取一部分原本的rss 內容(stripped) 當成discription 下面是擷取stripped的程式碼 local_entry['stripped'] = ''.join(BeautifulSoup(local_entry['content'], convertEntities = BeautifulSoup.HTML_ENTITIES).findAll(text = True))[:200] 下面是使用stripped的程式碼 <mbp:meta name="description">{{ escape(item['stripped']) }}</mbp:meta> 但是在極少數的情況下 這個stripped會是空的 這時候後面的程式碼就會有錯誤 如果我把'stripped'改成'title' 也就是rss的標題 則不會出現錯誤 我在想可以加入一個判斷式 如果stripped為空時(沒有文字) 則使用title來當description 請高手們幫忙了! 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 139.52.106.183 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1463066808.A.7F8.html

05/13 02:06, , 1F
if 'stripped' in local_entry: local_entry['stripped']=..
05/13 02:06, 1F

05/13 02:06, , 2F
else: local_entry['title']=...
05/13 02:06, 2F
對不起 可能是我沒有表達好 後面的程式碼會有錯誤不是指 <mbp:meta name="description">{{ escape(item['stripped']) }}</mbp:meta> 會出錯 而是在其他部分的程式碼要求 <mbp:meta name="description"> 與 </mbp:meta> 中間一定要有東西的時候會出錯 所以如果我把 <mbp:meta name="description">{{ escape(item['stripped']) }}</mbp:meta> 改成 <mbp:meta name="description">{{ escape(item['title']) }}</mbp:meta> 就不會出錯 因為'title'一定會有東西 所以我想要加的判斷式比較像是 if 'stripped'為空(沒有東西) <mbp:meta name="description">{{ escape(item['title']) }}</mbp:meta> else 'stripped'有內容 <mbp:meta name="description">{{ escape(item['stripped']) }}</mbp:meta> 感謝幫忙! ※ 編輯: cerebellum (139.52.106.183), 05/13/2016 03:57:12 ※ 編輯: cerebellum (139.52.106.183), 05/13/2016 03:57:42

05/13 08:37, , 3F
這看起來是 Jinja2 template? 試試這樣
05/13 08:37, 3F

05/13 08:42, , 4F
escape(item['stripped']) or escape(item['title'])
05/13 08:42, 4F

05/14 03:14, , 5F
感謝幫忙 初步測試是成功的! 有問題會再來回報!
05/14 03:14, 5F
文章代碼(AID): #1NDA2uVu (Python)