【发布时间】:2017-03-28 09:17:51
【问题描述】:
我有一个 Django 模型,我想在其中保存无模式键值元数据,所以我使用的是 django.contrib.postgres.fields.JSONField。
键值数据是 Pandas 系列,默认情况下不可序列化 JSON(由于 numpy.int64、numpy.float64 类型),所以我使用方便的series.to_json(),它返回一个已经序列化的 JSON 字符串。
为了将其保存到我的模型中,我在其上运行 json.loads。但我知道在将数据保存到 Postgres 时会调用 json.dumps。
如何避免这种不必要的反序列化/重新序列化步骤?
代码示例:
def create_model(pandas_series):
mdl = Model()
metadata = pandas_series.to_json() # gives a JSON string
mdl.metadata = json.loads(metadata) # string->dict, then dict->string
mdl.save()
【问题讨论】:
-
您能发布模型定义(至少
metadata = ...字段定义)吗?这是django.contrib.postgres.fields.jsonb.JSONField还是第三方包?
标签: python json django postgresql pandas