On Mon, Apr 8, 2019 at 3:25 PM Sherif Fanous <[email protected]> wrote:
>
> Guess I had to write this post to figure out the answer!!!!
>
> Here's the query in ORM
>
> session.query(func.json_extract(text('value'), 
> '$.text').label('channel_name')).select_from(Channel, 
> func.json_each(Channel.json, 
> '$.display_names')).filter(func.json_extract(Channel.json, '$.number') == 
> 1).all()

OK does that work though?  The json_each() thing is not fully
supported and there is a recipe at
https://github.com/sqlalchemy/sqlalchemy/issues/3566#issuecomment-441931331
I've had users using for years against PostgreSQL.

We do want to add better support for functions you SELECT from but
it's a long term TODO.



>
>
> On Monday, April 8, 2019 at 3:03:22 PM UTC-4, Sherif Fanous wrote:
>>
>> Hello,
>>
>> I'm storing JSON documents in one of the columns of an SQLite table. The 
>> following query works fine if executed from the SQLite CLI
>>
>> SELECT json_extract(value, '$.text') as channel_name
>> FROM channel, json_each(channel.json, '$.display_names')
>> WHERE json_extract(channel.json, '$.number') == 1
>>
>> I've been trying to write this query using the ORM (session.query()) but am 
>> not able to wrap my head around how to do and after numerous failed attempts 
>> I've reverted to using Core and calling execute on a connection resource 
>> procured from the engine
>>
>> connection.execute("SELECT json_extract(value, '$.text') AS channel_name "
>>                    "FROM channel, json_each(channel.json, '$.display_names') 
>> "
>>                    "WHERE json_extract(channel.json, '$.number') == 1")
>>
>> Is it possible to write this query using the ORM?
>>
>> Thanks
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
> description.
> ---
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to