#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'