BadValueError: неподдерживаемый тип для свойства - PullRequest
0 голосов
/ 11 октября 2018

Я запрашиваю вид хранилища данных с фильтром на строковое свойство, имеющее значение даты.Свойство Kind actual_reported_date, к которому я пытаюсь получить доступ, не определено явно, а является динамическим атрибутом типа String.было ошибкой сохранять значение свойства в строковом типе вместо типа даты.Теперь есть ли способ, которым мы можем отфильтровать набор данных с сопоставлением даты в формате строки?Цель состоит в том, чтобы фильтровать записи со значением свойства actual_reported_date, превышающим значение input (from_date_formatted)

BadValueError: Unsupported type for property <type 'datetime.date'>

Код, который выдает исключение

from_date_formatted = datetime.datetime.strptime(from_date, '%Y-%m- 
                        %d').date()
query = EarningsSurprise.query(EarningsSurprise.ticker == ticker)
query = 
     query.filter(ndb.GenericProperty('actual_reported_date') >= 
                  from_date_formatted)
result = list(query.fetch()) # ( Exception is thrown at this point)

Entity

class EarningsSurprise(ndb.Expando):
  stock_code = ndb.StringProperty()
  ticker = ndb.StringProperty()
  original_data_source = ndb.StringProperty()
  actual_data_provider = ndb.StringProperty()

  created = ndb.DateTimeProperty(auto_now_add=True)
  updated = ndb.DateTimeProperty(auto_now=True)

  @classmethod
  def create(cls, **kv):
    return EarningsSurprise(**kv)

1 Ответ

0 голосов
/ 12 октября 2018

Вам не нужно ставить date() на strptime.Это уже делается:

from_date_formatted = datetime.datetime.strptime(from_date, '%Y-%m-%d')

Далее, где определено actual_reported_date?Если у вас есть дата в строковом формате, вы можете легко отсортировать по ГГГГММДДЧЧММСС ... Итак, вы можете проверить неравенство (в виде строк!) По:

from_date >= actual_reported_date # e.g. ('2018-05-22' >= '2017-11-22')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...