Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以字符串形式返回支持时区的postgres字段_Python_Postgresql_Sqlalchemy_Psycopg2 - Fatal编程技术网

Python 以字符串形式返回支持时区的postgres字段

Python 以字符串形式返回支持时区的postgres字段,python,postgresql,sqlalchemy,psycopg2,Python,Postgresql,Sqlalchemy,Psycopg2,我想使用create_engine参数来获取时区感知数据(在python中),它不是作为datetime.datetime,而是作为存储的UTC时间的字符串表示 具体而言,我有: engine = create_engine(DB_URI, convert_unicode=True, json_serializer=json.dumps) conn = engine.connect() res = fi

我想使用
create_engine
参数来获取时区感知数据(在python中),它不是作为
datetime.datetime
,而是作为存储的UTC时间的字符串表示

具体而言,我有:

engine = create_engine(DB_URI,
                       convert_unicode=True,
                       json_serializer=json.dumps)

conn = engine.connect()
res = find_all(conn, myquery)
但我的约会又是这样的:

datetime.datetime(2020, 4, 14, 7, 30, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None)
我希望它看起来更像:

2020-04-14 07:30Z
我可以更改什么,以便sqlalchemy将这些值作为文本时间戳检索

我希望以下措施也能奏效:

PGTZ = psycopg2.extensions.new_type(
    psycopg2.extensions.DATEARRAY.values,
    'PGTZ',
    lambda value, curs: value.isoformat() if value is not None else None)

psycopg2.extensions.register_type(PGTZ)
但这没有效果

我查阅了其他参考资料:

  • 这没有帮助,因为它会在查询时间后转换,这不是我想要的
  • 这是有希望的
  • 这是关于存储,而不是关于检索
  • 这很接近,但与烧瓶有关
  • 这很接近,但特别是序列化了json
是否尝试or功能


cast()
函数将在数据库中使用显式类型转换,而
type\u-concure()
仅在检索到Python时将其视为该类型。

您能帮助我了解如何/在何处使用这些吗?在查询的select()部分?这本手册有它们的例子。。。