#python #date #avro
#питон #Дата #avro
Вопрос:
У меня есть дата, как показано ниже, в файле csv, который я хочу загрузить в файл avro с тем же форматом,
Значения даты:
2020-01-29 21:08:53.0041 00:00
Формат, который я пытался преобразовать, выглядит следующим образом:
%d.%m.%Y %H:%M:%S.%f %h:%m
который загружается как null в файле avro.
Схема, о которой я упоминал в avro, выглядит следующим образом:
{
"name": "requestdate",
"type": [
"null",
"long"
],
"default": null,
"logicalType": "timestamp-millis",
"doc": "requestdate"
Может кто-нибудь помочь мне загрузить правильный формат
Спасибо
Ответ №1:
Вы можете использовать datetime
strptime
метод. Однако поле часового пояса недопустимо, поэтому вы должны удалить из него точку с запятой. Вы можете использовать регулярное выражение для исправления поля часового пояса.
from datetime import datetime
import re
# example
dt = '2020-01-29 21:08:53.0041 00:00'
# remove semicolon in timezone field
dt = re.sub(r"([ -]d ):(d )$", r"12", dt)
# parse
value = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S.%f %z')
print(value)
Вывод
2020-01-29 21:08:53.004100 00:00
Ответ №2:
Попробуйте этот формат:
%Y-%m-%d %H:%M:%S.%f %z
Комментарии:
1. Нет, это не работает. может быть из-за преобразования avro (как я уже упоминал, логический тип как «отметка времени-миллис»)?