<type 'exceptions.KeyError'>
Python 2.7.15+: /usr/bin/python2
Thu Mar 28 19:03:16 2024

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /var/www/artrz.ru/htdocs/src/index.py in <module>()
    336                                                 "menu": rubricator.html(len(params)>=2 and params[0]=="menu" and re.match("^\d+$", params[1]) and params[1]) }
    337                                 space["title"] = "<br>".join(space["title"].splitlines())
=>  338                                 space.update(page(params))
    339                                 result = template("main").merge(space, loader)
    340                 except:
space = {'banners': [{'id': 1805367818, 'image': 1805368091, 'name': '\xd0\x9a\xd0\xbe\xd0\xbc\xd0\xb8\xd1\x82\xd0\xb5\xd1\x82 \xd0\xbf\xd0\xbe \xd0\xb2\xd0\xbd\xd0\xb5\xd1\x88\xd0\xbd\xd0\xb8\xd0\xbc \xd1\x81\xd0\xb2\xd1\x8f\xd0\xb7\xd1\x8f\xd0\xbc \xd0\xa1\xd0\xb0\xd0\xbd\xd0\xba\xd1\x82-\xd0\x9f\xd0\xb5\xd1\x82\xd0\xb5\xd1\x80\xd0\xb1\xd1\x83\xd1\x80\xd0\xb3\xd0\xb0', 'ref': 'http://www.kvs.spb.ru'}, {'id': 1805367844, 'image': 1804835877, 'name': '\xd0\xa0\xd0\xbe\xd1\x81\xd1\x81\xd0\xb8\xd0\xb9\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9 \xd0\xb3\xd1\x83\xd0\xbc\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x82\xd0\xb0\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xbd\xd0\xb0\xd1\x83\xd1\x87\xd0\xbd\xd1\x8b\xd0\xb9 \xd1\x84\xd0\xbe\xd0\xbd\xd0\xb4', 'ref': 'http://www.rfh.ru'}, {'id': 1805367890, 'image': 1804846338, 'name': '\xd0\xa4\xd0\xbe\xd0\xbd\xd0\xb4 &quot;\xd0\x9a\xd0\xbe\xd0\xbd\xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd1\x82\xd0\xb8\xd0\xbd\xd0\xbe\xd0\xb2\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9&quot;', 'ref': 'http://www.mbfk.ru'}, {'id': 1804932204, 'image': 1804931868, 'name': '\xd0\x94\xd0\xbe\xd0\xbc-\xd0\xbc\xd1\x83\xd0\xb7\xd0\xb5\xd0\xb9 \xd0\x9c\xd0\xb0\xd1\x80\xd0\xb8\xd0\xbd\xd1\x8b \xd0\xa6\xd0\xb2\xd0\xb5\xd1\x82\xd0\xb0\xd0\xb5\xd0\xb2\xd0\xbe\xd0\xb9', 'ref': 'http://www.dommuseum.ru/'}, {'id': 1804895481, 'image': 1804895658, 'name': '\xd0\x97\xd0\x90\xd0\x9e \xc2\xab\xd0\x90\xd0\xbb\xd1\x8c\xd1\x82-\xd0\xa1\xd0\xbe\xd1\x84\xd1\x82\xc2\xbb \xd0\xb8\xd0\xbd\xd1\x84\xd0\xbe\xd1\x80\xd0\xbc\xd0\xb0\xd1\x86\xd0\xb8\xd0...\xd0\xbc\xd0\xbc\xd1\x83\xd0\xbd\xd0\xb8\xd0\xba\xd0\xb0\xd1\x86\xd0\xb8\xd0\xbe\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb5 \xd1\x82\xd0\xb5\xd1\x85\xd0\xbd\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb3\xd0\xb8\xd0\xb8', 'ref': 'http://www.altsoft.spb.ru'}], 'left_links': [{'active': None, 'id': 1805368474, 'image': 1805368485, 'name': '\xd0\xa0\xd1\x83\xd1\x81\xd1\x81\xd0\xba\xd0\xb8\xd0\xb5 \xd0\xb2 \xd0\x98\xd1\x82\xd0\xb0\xd0\xbb\xd0\xb8\xd0\xb8', 'text': 'http://www.russinitalia.it'}, {'active': None, 'id': 1805368262, 'image': 1805368273, 'name': '\xd0\xa0\xd1\x83\xd1\x81\xd1\x81\xd0\xba\xd0\xb8\xd0\xb5 \xd0\x9b\xd0\xb0\xd1\x82\xd0\xb2\xd0\xb8\xd0\xb8', 'text': 'http://www.russkije.lv'}, {'active': None, 'id': 1805368210, 'image': 1805368221, 'name': '\xd0\xa0\xd0\xbe\xd1\x81\xd1\x81\xd0\xb8\xd0\xb9\xd1\x81\xd0\xba\xd0\xbe\xd0\xb5 \xd0\xb7\xd0\xb0\xd1\x80\xd1\x83\xd0\xb1\xd0\xb5\xd0\xb6\xd1\x8c\xd0\xb5 \xd0\xb2\xd0\xbe \xd0\xa4\xd1\x80\xd0\xb0\xd0\xbd\xd1\x86\xd0\xb8\xd0\xb8', 'text': 'http://www.dommuseum.ru/old/?m=dist'}, {'active': None, 'id': 1805368287, 'image': 1805368298, 'name': '\xd0\xa0\xd1\x83\xd1\x81\xd1\x81\xd0\xba\xd0\xb0\xd1\x8f \xd0\xad\xd1\x81\xd1\x82\xd0\xbe\xd0\xbd\xd0\xb8\xd1\x8f', 'text': 'http://russianestonia.eu'}], 'menu': '<div id="menu"><a class="menu_1" href="/menu/180...k; }\n#ch_1804645939 { display: block; }\n\n</style>', 'title': '\xd0\x9f\xd0\xbe \xd0\xb2\xd0\xb0\xd1\x88\xd0\xb5\xd0\xbc\xd1\x83 \xd0\xb7\xd0\xb0\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81\xd1\x83 \xd0\xbd\xd0\xb8\xd1\x87\xd0\xb5\xd0\xb3\xd0\xbe \xd0\xbd\xd0\xb5 \xd0\xbd\xd0\xb0\xd0\xb9\xd0\xb4\xd0\xb5\xd0\xbd\xd0\xbe'}, space.update = <built-in method update of dict object>, page = <function page>, params = ['menu', '1804645950', '1804782044']
 /var/www/artrz.ru/htdocs/src/index.py in page(params=['menu', '1804645950', '1804782044'])
    168                                 "groups": group(model.articles(rubric=params[1], order="year", place=params[2]), country, "articles") }
    169         elif match('(menu|places|authors|orgs|search)', r'.+', r'\d+'):
=>  170                 return article(params[2], hide_rubrics=not(match('search')))
    171         elif match('articles', r'\d+'):
    172                 return article(params[1])
article = <function article>, params = ['menu', '1804645950', '1804782044'], hide_rubrics undefined, match = <function <lambda>>
 /var/www/artrz.ru/htdocs/src/index.py in article(aid='1804782044', hide_rubrics=True)
     96         def article(aid, hide_rubrics=False):
     97                 a = model.article(aid, hide_rubrics)
=>   98                 return { "title": a["title"],
=>   99                                 "rubrics": a["rubrics"],
=>  100                                 "article": a }
a = {}

<type 'exceptions.KeyError'>: 'title'
      args = ('title',)
      message = 'title'