Python / json:检查可能存在或不存在的键的内容

时间:2013-10-16 00:56:27

标签: python json key exists

对于熟悉图像板的人来说,OP帖子可能包含也可能不包含“主题”和“评论”

我写这篇文章是为了搜索给定董事会的所有页面的主题和OP帖子。

如果我的搜索词存在于其中一个上但另一个键不存在则不会附加到我的res列表中。

那么我该如何搜索1键或其他可能不存在的json键?

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

1 个答案:

答案 0 :(得分:0)

json.load以Python词典的形式返回对象。例如,您可以使用dict的{​​{3}}方法:

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