Я хотел бы получать еженедельные обновления для заявок на получение разрешений, которые были поданы, но еще не утверждены с использованием этой базы данных, здесь . Я использовал их базовый код, который вы можете найти здесь в качестве шаблона.
Мой код, который работает так:
results = client.get("mkbn-caye", where = \
"received_date >= '2019-09-24T13:50:27.000' AND issued_date IS NULL"
Однако я бы хотелдействительно предпочитаю не менять дату каждый раз вручную, чтобы быть неделю назад. Я хотел бы, чтобы переменная / объект (извините, все еще изучал местный язык Python), такой как 'startPeriod_ts', представляли дату недели и программу для запуска. Что-то вроде этого:
results = client.get("mkbn-caye", where = \
"received_date >= 'startPeriod_ts' AND issued_date IS NULL")
Я бы увидел, что это работает примерно так, но в настоящее время не работает.
import pandas as pd
import datetime
from sodapy import Socrata
from time import time
from time import time, ctime
# Getting the correct time variables in the timestamp format.
now = datetime.datetime.now()
print(now)
print ("Now is: ", now)
oneWeekAgo = datetime.timedelta(days=-7) # defining the time scale to look back
print (oneWeekAgo)
startPeriod = now + oneWeekAgo #creating a new date based on timedelta
print (startPeriod)
startPeriod_ts = pd.Timestamp (startPeriod)
print (startPeriod_ts)
# Unauthenticated client only works with public data sets. Note 'None'
# in place of application token, and no username or password:
client = Socrata("data.marincounty.org",*myAppToken)
results = client.get("mkbn-caye", where = \
"received_date >= 'startPeriod_ts' AND issued_date IS NULL")
# "startPeriod_ts" is not readable by Socrata.
# Doesn't currently work. How to make a date variable that is seven days ago readable by Socrata.
results_df = pd.DataFrame.from_records(results)
print(results_df)
Я получаю следующий результат с приведенным выше кодом:
«Трассировка (последний вызов был последним): файл» /home/noods/Documents/Cosas/Python/StackExchangeUpload.py ", строка 23, в файле" receive_date> = 'startPeriod_ts' ANDUEd_Date IS NULL ")"/home/noods/.local/lib/python3.6/site-packages/sodapy/init.py", строка 362, в файле get params = params) Файл "/home/noods/.local/lib/python3.6/site-packages/sodapy/init.py ", строка 477, в файле _perform_request _raise_for_status (response)" /home/noods/.local/lib/python3.6/site-packages / sodapy / init .py ", строка 531, в _raise_for_status поднять запросы"
Как можно отформатировать объект 'startPeriod_ts', чтобы он мог быть прочитан Сократомстоит? Спасибо за любую помощь!