Psycopg2 - SQL 结果到 json 列表

Psycopg2 - SQL Result to json list

尝试 return Psycopg2 结果到 Python json 列表。

        self.cursor.execute("SELECT user FROM app.feeders")
        ex1 = self.cursor.fetchall()
        print(ex1)

        json_output = json.dumps(ex1)
        print(json_output)

        result = [r[0] for r in self.cursor.fetchall()]
        print(result)

        return json_output

table app.feeders 有一个用户列表,我希望在 json 列表中代表这些用户 ["apple", "banana", "cherry" ] 然而,我上述尝试的结果是:

[('apple',), ('banana',), ('cherry',)]
[["apple"], ["banana"], ["cherry"]]
[]

您可以直接在 Postgres 中创建 array

self.cursor.execute("SELECT array_agg(user) FROM app.feeders")
print(cur.fetchone()[0])

输出:

['tony', 'tom', 'kim']

所以问题是直接通过 cursor.fetchall() 传递的。进行以下更改解决了问题:

发件人:

result = [r[0] for r in self.cursor.fetchall()]

收件人:

result = [r[0] for r in ex1]