2013-10-16 45 views
1

對於那些熟悉imageboards,一個OP後可能會或可能不包含一個「主題」和「註釋」的Python/JSON:檢查按鍵的內容,可能會或可能不存在

我寫了這個搜索所有線程主題和OP帖子的給定董事會頁面。

如果我的搜索項存在於其中一個,但另一個關鍵不存在,它將不會附加到我的res列表中。

那麼如何搜索JSON鍵,其中1個鍵或另一個鍵可能不存在?

import urllib, json, HTMLParser 

def s4Chan(board, search): 
    logo = '3::54chan' 
    res = [] 
    p = HTMLParser.HTMLParser() 

    catalog = json.load(urllib.urlopen('https://api.4chan.org/%s/catalog.json' % board)) 

    for i in catalog: 
    for j in i['threads']: 
     try: 
     if search.lower() in j['sub'].lower() or search.lower() in j['com'].lower(): 
      subject = j['sub'] 
      post = p.unescape(str(j['com'])).replace('<br>', ' ') 

      if len(post) > 300: 
      post = post[0:300] 
      post = post + '...' 

      text = str('%s /%s/ %s | %s | %s (R:%s, I:%s)' % (logo, board, subject, post, 'https://4chan.org/%s/res/%s' % (board, j['no']), j['replies'], j['images'])) 
      res.append(text) 

     except(KeyError): 
     continue 
    return res 

回答

0

json.load返回一個對象的Python字典。例如,您可以使用dictget方法:

if search.lower() in j.get('sub', '').lower() or search.lower() in j.get('com', '').lower(): 
+0

謝謝。 :)我不得不改變循環中的幾行,我必須刪除異常。 – megafreakshow

相關問題