Как десериализовать тип данных Date с помощью параметра default в файле json.dump в методе экземпляра - PullRequest
0 голосов
/ 05 октября 2019

Я конвертирую sql результат в файл JSON. Один из столбцов имеет тип данных «Дата». Я получаю следующую ошибку: «TypeError: Объект типа date не является сериализуемым JSON.»

Я использую параметр «default» в «json.dump» для преобразования его в строку. Я создал функцию, которая будет конвертировать 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__()

Без передачи значения 'o' в dataTypeConvert он не запустится. Я не уверен, какое именно значение 'o' необходимо передать для преобразования объекта в строку и как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...