首页 > 解决方案 > 将 JSOB 对象插入 Postgres 数据库

问题描述

我正在尝试将一些 JSON 对象插入 Postgres 数据库。不会引发错误,但数据库中的字段保持空白。

我已经尝试了很多东西。使用python dicts,使用json.dumps,保存为字符串并且全部返回空白。字段 test_record_parse_data、test_parse_data、test_record_mappings 和 test_mappings 是来自 http POST 请求的键值对。key 是字段的名称,value 是值。以下是我当前状态的代码。

from sqlalchemy.dialects.postgresql import JSON
import json

class TestConfiguration(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    part_number = db.Column(db.String(30))

    test_record_parse_data = db.Column(JSON)
    test_parse_data = db.Column(JSON)
    test_record_mappings = db.Column(JSON)
    test_mappings = db.Column(JSON)

    def __init__(self, test_record_parsing_data, test_parsing_data,
             test_record_mappings, test_mappings, part_number=None):
        """

        :param part_number:
        :param process:
        :param parser:
        :param version:
        :return: None
        """
        # Configuration identification
        self.part_number = part_number if part_number is not None else None

        # Parsing configuration data
        self.test_record_parsing_data = json.dumps(test_record_parsing_data)
        self.test_parsing_data = json.dumps(test_parsing_data)

        # Mapping data to database
        self.test_record_mapping = json.dumps(test_record_mappings)
        self.test_mapping = json.dumps(test_mappings)

        db.session.add(self)
        db.session.commit()

我希望在 test_record_parse_data、test_parse_data、test_record_mappings 和 test_mappings 字段中看到 python dict 表示,但它们仍然是空白的。part_number 字段总是成功写入数据库。

标签: pythonflask-sqlalchemy

解决方案


推荐阅读