Skip to content

In Record complex data coming as string #560

Open
@mrinalkamboj

Description

@mrinalkamboj
  • asyncpg version: 0.20.1
  • PostgreSQL version: "version" (using select version()
    "PostgreSQL 12.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit"
  • Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
    the issue with a local PostgreSQL install?
    : Using installed version on a GCP server not Saas
  • Python version: 3.8.2
  • Platform: CentOS8
  • Do you use pgbouncer?: No
  • Did you install asyncpg with pip?: Yes
  • If you built asyncpg locally, which version of Cython did you use?: NA
  • Can the issue be reproduced under both asyncio and
    uvloop?
    : Yes

Following is my asyncpg code for fetching data:

 conn = await asyncpg.connect(
                user,
                password,
                database,
                host,
                port,
            )
            records = await conn.fetch(query)
            values = [dict(record) for record in records]
            return values

record result that is received contains a complex object in the form of string as follows:

'Affinity':'{"Quantity" : 0, "Revenue" : 0, "Margin" : 0, "Adjustable_Quantity" : 0, "Adjustable_Revenue" : 0, "Adjustable_Margin" : 0}'

Due to which there's extra parsing required to convert data from string to object. Is it possible to not get the data as string by default, like other adapters psycopg2 provide. Please recommend a workaround otherwise this needs lots of code addition to parse each and every object. I would ideally expect caller to directly consume json objects instead of parse and consume

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions