gpt4 book ai didi

mysql - Python 2.7、MySQL、JSON 和 DateTime - 如何删除时间戳字段中日期和时间之间的 T?

转载 作者:行者123 更新时间:2023-11-29 18:11:56 26 4
gpt4 key购买 nike

我有一个包含一些表的 MySQL 数据库。我编写了一个 python 脚本,将一些表数据转储到 JSON 文件中。我对转储日期和时间戳感到有点困惑。

这是代码示例,conversion.py:

import MySQLdb
import json
import collections
from datetime import date, datetime

#connect to database
conn = MySQLdb.connect(host= "localhost", user="root", passwd="root", db="testdb")

#Fetch rows
sql = "SELECT * from offices"
cursor = conn.cursor()
cursor.execute(sql)
rows = cursor.fetchall()

data = []

def json_serial(obj):
"""JSON serializer for objects not serializable by default json code"""

if isinstance(obj, (datetime, date)):
return obj.isoformat()
raise TypeError ("Type %s not serializable" % type(obj))


for row in rows:
d = collections.OrderedDict()
d['officeCode'] = row[0]
d['city'] = row[1]
d['phone'] = row[2]
d['eff_date'] = row[3]
d['lastupdatedby'] = row[4]
d['state'] = row[5]
d['country'] = row[6]
d['postalcode'] = row[7]
d['territory'] = row[8]
data.append(d)


with open('data.json', 'w') as outfile:

json.dump(data, outfile, default=json_serial)

conn.close()

当我执行此代码时,会创建一个 JSON 文件,这很好。我有两个字段的问题,eff_date 是数据库中的日期类型,lastupdatedby 是数据库中的时间戳类型。

"eff_date": "2015-09-23" 

"lastupdatedby": "2016-08019T08:13:53"

因此,在我的 JSON 文件中,eff_time 创建得很好,但 lastupdatedby 在日期和时间中间得到了一个 T,如上所示。但是,在我的实际数据库中,日期和时间之间没有 T。我想摆脱那个 T,因为我计划将此文件转储到不同的数据库中,并且我认为它不会接受该格式。

任何帮助将不胜感激。

最佳答案

日期和时间之间的 T 符合 ISO 8601 格式。

这是 datetime.isoformat 函数返回的格式,可在此处的代码中找到:

return obj.isoformat()

(这恰好是 Javascript 所期望的格式。)

如果我们想返回不同格式的字符串,我们可能需要使用不同的函数,例如strftime 函数代替 isoformat

如果 isoformat 适用于日期对象,则不要管它。只需对日期时间对象执行 strftime 即可。

格式字符串“%Y-%m-%d %H:%M:%S”可能适合您的需要。

https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

关于mysql - Python 2.7、MySQL、JSON 和 DateTime - 如何删除时间戳字段中日期和时间之间的 T?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47319414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com