python - 如何在 python 中反序列化 json 对象中的日期时间?

标签 python json datetime

我原来的字典是

A = {                                                                                                  
    'date': datetime.date(2013, 1, 1),
    'price': 100
}

由于 datetime.date 不可序列化,我添加了一个默认函数来处理它:

B = json.dumps(A, default=lambda obj:obj.isoformat() if hasattr(obj, 'isoformat') else obj)

我的问题是,当我使用 json.loads 将其转换回原始字典时,如何反序列化 'date' 字段?

最佳答案

from datetime import datetime

def load_with_datetime(pairs, format='%Y-%m-%d'):
    """Load with dates"""
    d = {}
    for k, v in pairs:
        if isinstance(v, basestring):
            try:
                d[k] = datetime.strptime(v, format).date()
            except ValueError:
                d[k] = v
        else:
            d[k] = v             
    return d

dump = json.dumps(A, default = f)
json.loads(dump, object_pairs_hook=load_with_datetime)

# {u'date': datetime.date(2013, 1, 1), u'price': 100}

关于python - 如何在 python 中反序列化 json 对象中的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14995743/

相关文章:

python - 值错误: operands could not be broadcast together with shapes (7410,)(3,)

python - scrapy、splash、lua、按钮点击

javascript - 如何将多维数组显示为表格?

jquery - 成功 getJSON 操作后 data.length 未定义

c# - 如何将 2d30m 这样的字符串格式更改为时间跨度?

django - model_to_dict 没有返回带有 auto_now_add = True 的 DateTimeField

ruby-on-rails - 为 '/edit' View 填充表单字段时,Rails 应用程序 config.time_zone 不适用

'Season Year' 等字符串的 Python 自定义排序函数

python - 使用随机生成的变量对函数进行 doctest

c# - RESTful API 反序列化错误