ziro спасибо, впринцепе как то не подумал в мапе сразу регулярным выражением сделать это действительно довольно елегантно, приведу вариант которым я уже воспользовался если кому интересно, он более громоздкий единственный плюс какие то параметры можно передавать в функцию.
def get_rex_doc(database, doc_id, pattern):
doc = database[doc_id]
result = {}
pattern = pattern+ur"[0-9a-zA-Z_]+"
for key in doc:
m = re.search(pattern, key)
# проверяет что в m чтото есть проверяем что он не нулллл
if m:
if m.group() == key:
getk = m.group()
result[getk] = doc[getk]
return result
def get_docs_on_type(db, view, pattern):
docs = db.view(view)
result = {}
for doc in docs:
result [doc['id']] = get_rex_doc(db, doc['id'], pattern)
return result
Первая функция выводит шапку таблицы вторая тело и соответственно их вызов:
from couch_lib import get_rex_doc, get_docs_on_type
couch = Server('http://127.0.0.1:5984')
db = couch['test']
a = get_rex_doc(db, "1", "show_")
for k in a:
print a.get(k)
a = get_docs_on_type(db, "_design/rb_docs/_view/show", "show_")
for k in a:
for kk in a[k]:
print a[k][kk],
print