如何在Python中的字典上执行函数
我有一个JSON文件,我想将所有日期字符串转换为日期类型。现在,我的脚本在JSON字典中循环,并将这些值写入数据库。如何在整个字典上执行字符串到日期的转换 这里是我的代码片段,它循环遍历对象。我想将我的CreatedDate输出从2015年2月17日16:53:25转换为 至2015-02-17 16:53:25 现在,我正在使用CreatedDate=datetime.datetime.strptimeCreatedDate,%m/%d/%Y%H:%m:%S来实现后一个输出,如何在为CreateDate截取的以下代码上执行此操作如何在Python中的字典上执行函数,python,json,dictionary,Python,Json,Dictionary,我有一个JSON文件,我想将所有日期字符串转换为日期类型。现在,我的脚本在JSON字典中循环,并将这些值写入数据库。如何在整个字典上执行字符串到日期的转换 这里是我的代码片段,它循环遍历对象。我想将我的CreatedDate输出从2015年2月17日16:53:25转换为 至2015-02-17 16:53:25 现在,我正在使用CreatedDate=datetime.datetime.strptimeCreatedDate,%m/%d/%Y%H:%m:%S来实现后一个输出,如何在为Creat
for sr in decoded2['Response']['ListOfServiceRequest']['ServiceRequest']:
SRAddress = sr['SRAddress']
Latitude = sr['Latitude']
Longitude = sr['Longitude']
SRNumber = sr['SRNumber']
FirstName = sr['FirstName']
LastName = sr['LastName']
HomePhone = sr['HomePhone']
CreatedDate = sr['CreatedDate']
也许我误解了,但您能否不简单地使用strftime将日期转换回具有所需格式的字符串
def convert_date_string(s_date_in):
date_in = datetime.datetime.strptime(s_date_in, "%m/%d/%Y %H:%M:%S")
return datetime.datetime.strftime(date_in, "%Y-%m-%d %H:%M:%S")
for sr in decoded2['Response']['ListOfServiceRequest']['ServiceRequest']:
sr['CreatedDate'] = convert_date(sr['CreatedDate'])
由于您的初始结构是一个JSON字符串,您可以编写一个自定义字符串并检查该字符串,以确定它是否可以是一个日期字符串 或者,您可以使用kwarg并向其传递自定义函数。例如:
json_string = '{"key": "02/17/2015 16:53:25", "key2": {"nest": 1,"nest2": "blah"}}'
import json
def obj_hook(dct):
for k, v in dct.iteritems():
if isinstance(v, basestring):
# Put your date time detection here. Also add additional type checks.
dct[k] = 'Replaced-- {}'.format(v)
return dct
result_dict = json.loads(json_string, object_hook=obj_hook)
print result_dict
>>> {u'key2': {u'nest': 1, u'nest2': 'Replaced-- blah'}, u'key': 'Replaced-- 02/17/2015 16:53:25'}
如果您只想在适当的位置更改字典的值,那么这样做可能有些过分。xnx的回答表明,您可以在循环中简单地更改字典的值。我不确定我是否理解这个问题,当您在获取CreatedDate后调用strTime时,有什么不起作用?甚至在sr['CreatedDate']上?我想你是对的,也许我想得太多了。