Как получить имя базы данных и таблицы из запроса ReQL

#python #rethinkdb

#python #rethinkdb

Вопрос:

Предположим, у меня есть следующий запрос RethinkDB (как напечатано в IPython):

 In [32]: data_to_archive
Out[32]: <RqlQuery instance: r.db('sensor_db').table('sensor_data').filter(lambda var_2: (r.row['timestamp'] < (r.now() - r.expr(259200.0)))) >
 

Запрос относится к базе sensor_db данных и таблице sensor_data , как видно из распечатанного вывода. Есть ли какой-либо способ получить эту информацию в качестве атрибута RqlQuery экземпляра?

(Причина, по которой я хочу это сделать, — написать краткий код: запрос, база данных и таблица в настоящее время передаются разделенными в качестве входных аргументов функции, но последние два фактически содержатся в первом).

Ответ №1:

Не уверен, существует ли оно. Между тем, небольшое уродство на самом деле никому не повредило, кроме моей мамы:

 In [57]: mom = lambda q, fn: re.search(fn   "('(.*?)')", str(q)).group(1)

In [58]: rql = r.db("foo").table('bar').filter(lambda x: x)

In [59]: mom(rql, 'db')
Out[59]: 'foo'

In [60]: mom(rql, 'table')
Out[60]: 'bar'