如何在实例方法中使用json.dump中的'default'参数反序列化'Date'数据类型

时间:2019-10-04 22:17:51

标签: python json postgresql oop serialization

我正在将sql结果转换为JSON文件。列之一具有“日期”数据类型。我收到以下错误:'TypeError:日期类型的对象不可JSON序列化。'

我正在使用'json.dump'中的'default'参数将其转换为字符串。我创建了一个将datetime.date转换为str的函数。它需要一个对象参数。我不知道如何从json.dump函数中传递该对象。

def runQuery(self):
    cur = self.db_connect().cursor()
    cur.execute(self.query)
    result = [dict((cur.description[i][0], value) \
                   for i, value in enumerate(row)) for row in cur.fetchall()]
    cur.connection.close()
    return result

def jsonFile(self):
    with open(self.file, 'w') as f:
        json.dump(self.runQuery(), f, default=self.dataTypeConvert())

def dataTypeConvert(self, o):
    if isinstance(o, datetime.date):
        return o.__str__()

在dataTypeConvert中不传递值'o'不会运行。我不确定将对象转换为字符串需要传递的'o'的确切值是什么?

0 个答案:

没有答案