【问题标题】:Formatting Certain Dates in Python for SQL在 Python for SQL 中格式化某些日期
【发布时间】:2018-07-10 04:46:33
【问题描述】:

我有几个来自 JSON 文件的日期、日期和时间的字符串版本,我想知道如何格式化它们。

我想对这些中的每一个进行格式化,以便在 PostgreSQL 中轻松使用

这是第一个:

{"time": {"Friday": {"20:00": 2, "19:00": 1, "22:00": 10, "21:00": 5, "23:00": 14, "0:00": 2, "18:00": 2}, "Thursday": {"23:00": 1, "0:00": 1, "19:00": 1, "18:00": 1, "16:00": 2, "22:00": 2}, "Wednesday": {"17:00": 2, "23:00": 3, "16:00": 1, "22:00": 1, "19:00": 1, "21:00": 1}, "Sunday": {"16:00": 2, "17:00": 2, "19:00": 1, "22:00": 4, "21:00": 4, "0:00": 3, "1:00": 2}, "Saturday": {"21:00": 4, "20:00": 3, "23:00": 10, "22:00": 7, "18:00": 1, "15:00": 2, "16:00": 1, "17:00": 1, "0:00": 8, "1:00": 1}, "Tuesday": {"19:00": 1, "17:00": 1, "1:00": 2, "21:00": 1, "23:00": 3}, "Monday": {"18:00": 2, "23:00": 1, "22:00": 2}}

第二:

"hours": {"Monday": "11:00-21:00", "Tuesday": "11:00-21:00", "Friday": "11:00-22:00", "Wednesday": "11:00-21:00", "Thursday": "11:00-21:00", "Sunday": "11:00-21:00", "Saturday": "11:00-22:00"}}

第三个:

"yelping_since": "2006-01-18"

第三个还不错,我想我可以格式化它: 这是我使用的代码

import json
from datetime import datetime
datetime.strptime(data['yelping_since'],'%Y-%m-%d')

但是我在其他两个方面遇到了一些麻烦。如果有人可以请给我一些指示,将不胜感激。

如果您有任何问题,请告诉我

感谢您的阅读

【问题讨论】:

  • 第一和第二不是日期。它们是第 1 次)在非特定日期多次(每年约 52 次存在,给予或接受一对)-第 2 次)是另一个非特定日期的时间跨度。我们需要更多背景 - 考虑研究 how-to-ask 以了解一个好问题需要什么。

标签: python json postgresql date datetime


【解决方案1】:

https://docs.python.org/2/library/json.html

前两个看起来像 json - 试试上面的链接。它会让你知道如何使用它。简而言之 - 不要自己解析 json...

例如在 Postgres 中使用 json 很简单:

t=# select jsonb_object_keys(('{"time": {"Friday": {"20:00": 2, "19:00": 1, "22:00": 10, "21:00": 5, "23:00": 14, "0:00": 2, "18:00": 2}, "Thursday": {"23:00": 1, "0:00": 1, "19:00": 1, "18:00": 1, "16:00": 2, "22:00": 2}, "Wednesday": {"17:00": 2, "23:00": 3, "16:00": 1, "22:00": 1, "19:00": 1, "21:00": 1}, "Sunday": {"16:00": 2, "17:00": 2, "19:00": 1, "22:00": 4, "21:00": 4, "0:00": 3, "1:00": 2}, "Saturday": {"21:00": 4, "20:00": 3, "23:00": 10, "22:00": 7, "18:00": 1, "15:00": 2, "16:00": 1, "17:00": 1, "0:00": 8, "1:00": 1}, "Tuesday": {"19:00": 1, "17:00": 1, "1:00": 2, "21:00": 1, "23:00": 3}, "Monday": {"18:00": 2, "23:00": 1, "22:00": 2}}}'::jsonb)->'time'->'Sunday');
 jsonb_object_keys
-------------------
 0:00
 1:00
 16:00
 17:00
 19:00
 21:00
 22:00
(7 rows)

从您的第一个示例中获取“星期日”的键

,只是将其转换为 time 就是将 ::time 添加到末尾:

t=# select jsonb_object_keys(('{"time": {"Friday": {"20:00": 2, "19:00": 1, "22:00": 10, "21:00": 5, "23:00": 14, "0:00": 2, "18:00": 2}, "Thursday": {"23:00": 1, "0:00": 1, "19:00": 1, "18:00": 1, "16:00": 2, "22:00": 2}, "Wednesday": {"17:00": 2, "23:00": 3, "16:00": 1, "22:00": 1, "19:00": 1, "21:00": 1}, "Sunday": {"16:00": 2, "17:00": 2, "19:00": 1, "22:00": 4, "21:00": 4, "0:00": 3, "1:00": 2}, "Saturday": {"21:00": 4, "20:00": 3, "23:00": 10, "22:00": 7, "18:00": 1, "15:00": 2, "16:00": 1, "17:00": 1, "0:00": 8, "1:00": 1}, "Tuesday": {"19:00": 1, "17:00": 1, "1:00": 2, "21:00": 1, "23:00": 3}, "Monday": {"18:00": 2, "23:00": 1, "22:00": 2}}}'::jsonb)->'time'->'Sunday')::time;
 jsonb_object_keys
-------------------
 00:00:00
 01:00:00
 16:00:00
 17:00:00
 19:00:00
 21:00:00
 22:00:00
(7 rows)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    相关资源
    最近更新 更多