python-3.x - 在 pandas 中验证日期时出现问题
问题描述
guid = str(uuid.uuid4())
username = config.username
dbpassword = config.dbpassword
dbhost = config.dburl
engine = create_engine('mysql://%s:%s@%s/db?charset=utf8' %(username, dbpassword, dbhost), encoding="utf-8")
path = 'd:/anaconda3/lib/bin/'
jsonFiles = os.listdir(path)
maxSnapshotQuery = '''SELECT MAX(Snapshot) AS Snapshot FROM %s'''
for file in jsonFiles:
tableName = file.split(".")[0]
snapshotCheck = pd.read_sql_query(maxSnapshotQuery %tableName, engine)
print(snapshotCheck['Snapshot'].dt.date)
if snapshotCheck['Snapshot'].dt.date == datetime.datetime.now().date():
with open(path+file) as f :
try:
rawJson = json.load(f)
rawJson['authorizations'][0]['id'] = guid
print(f.name + ' Load Completed')
except ValueError as error:
print(error + ' ' + f.name + ' Check the JSON within')
continue
createSession()
createJob(session)
loadData(data, engine)
我正在尝试确保尚未拍摄当天的快照并将其放入数据库中。如果它已跳过该负载并继续下一个(这发生在代码的另一部分),但我似乎无法让 if 语句从数据框中获取日期并将其与当前日期匹配。
解决方案
知道了:
for file in jsonFiles:
tableName = file.split(".")[0]
snapshotDate = pd.read_sql_query(maxSnapshotQuery %tableName, engine, parse_dates=['Snapshot'])
if snapshotDate.Snapshot[0].date() != datetime.datetime.now().date() :
with open(path+file) as f :
try:
rawJson = json.load(f)
rawJson['authorizations'][0]['id'] = guid
print(f.name + ' Load Completed')
except:
print(f.name + ' Check the JSON within')
continue
createSession()
createJob(session)
loadData(data, engine)
else:
print('Data already loaded for today for ' + file)
像 K,V 对一样解析对象,然后对其应用日期。
推荐阅读
- cordova - Ionic Cordova 在每次构建时都发现了插件
- python - 有没有办法检索当前选择的 conda 环境和/或在其中执行命令?
- google-play - Google Play - 获取销售信息的 API
- oracle - 如何通过返回 REF CURSOR 的过程返回的别名获取列值
- python-3.x - How to unpack lambda tuple parameters to run on Python 3
- visual-studio - 如何在包管理器控制台中选择除两个或三个项目之外的所有项目
- php - 根据 PSR-2 编码标准,我应该使用多少个空格?
- reactjs - Redux 状态在下一个操作时部分恢复
- javascript - 当用户点击 tab 键时如何创建一个空行
- java - 使用 jOOQ 将枚举值插入到未知表中