使用 jsonpickle 从文件保存和加载对象

2024-03-20

我有以下简单方法使用 jsonpickle 将 python 对象写入文件:

def json_serialize(obj, filename, use_jsonpickle=True):
    f = open(filename, 'w')
    if use_jsonpickle:
        import jsonpickle
        json_obj = jsonpickle.encode(obj)
        f.write(json_obj)
    else:
        simplejson.dump(obj, f) 
    f.close()

def json_load_file(filename, use_jsonpickle=True):
    f = open(filename)
    if use_jsonpickle:
        import jsonpickle
        json_str = f.read()
        obj = jsonpickle.decode(json_str)
    else:
        obj = simplejson.load(f)
    return obj

问题是,每当我使用它们时,它都会将我的对象作为字典加载回来(具有以下字段:“py/object”:“my_module.MyClassName”),而不是作为用于生成的类型的实际Python对象json 字符串。我怎样才能让 jsonpickle 实际上将加载的字符串转换回对象?

为了通过示例来说明这一点,请考虑以下内容:

class Foo:
    def __init__(self, hello):
    self.hello = hello

# make a Foo obj
obj = Foo("hello world")
obj_str = jsonpickle.encode(obj)
restored_obj = jsonpickle.decode(obj_str)
list_objects = [restored_obj]
# We now get a list with a dictionary, rather than
# a list containing a Foo object
print "list_objects: ", list_objects

这产生:

list_objects:  [{'py/object': 'as_events.Foo', 'hello': 'hello world'}]

而不是类似:[Foo()]。我怎样才能解决这个问题?

thanks.


正确的答案是我没有继承自object。没有继承自object, jsonpickle 似乎无法正确解码在构造函数中采用一个或多个参数的类。我绝不是专家,但我做到了Foo(object):而不是Foo:在类声明中修复了它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jsonpickle 从文件保存和加载对象 的相关文章

  • 如何在 Google App Engine 的 Python 中获取 StringProperty 的值?

    如何获取 nbd Model 的值 我想返回由多个字段组成的描述 但我无法让它工作 这是我的班级代码 class User ndb Model name ndb StringProperty email ndb StringProperty
  • Tipfy:如何在模板中显示blob?

    鉴于在 gae 上使用tipfy http www tipfy org python 以下模型 greeting avatar db Blob avatar 显示 blob 此处为图像 的模板标签是什么 在这种情况下 斑点是一个图像 这很棒
  • Python 的 mysqldb 晦涩文档

    Python 模块 mysqldb 中有许多转义函数 我不理解它们的文档 而且我努力查找它们也没有发现任何结果 gt gt gt print mysql escape doc escape obj dict escape any speci
  • 如何使用 Retrofit 解析嵌套 json....?

    我不知道该怎么办使用 Retrofit 解析 json 熟悉使用 Retrofit 解析简单的 json 但不熟悉解析嵌套Json using Retrofit 这是我的 Json 数据 current observation image
  • Paramiko SSHException 通道已关闭

    我一直在使用 Paramiko 在 Linux Windows 机器上发送命令 它可以很好地在 Ubuntu 机器上远程执行测试 但是 它不适用于 Windows 7 主机 以下是我收到的错误 def unit for event self
  • 对于相同的查询,MySQL Workbench 比 Python 快得多

    MySQL Workbench 中的以下查询需要 0 156 秒才能完成 SELECT date time minute price id FROM minute prices WHERE contract id 673 AND TIMES
  • NumPy 和 SciPy - .todense() 和 .toarray() 之间的区别

    我想知道使用是否有什么区别 优点 缺点 toarray vs todense 在稀疏 NumPy 数组上 例如 import scipy as sp import numpy as np sparse m sp sparse bsr mat
  • 如何使用 PyMongo 在重复键错误后继续插入

    如果我需要在 MongoDB 中插入尚不存在的文档 db stock update one document set document upsert True 将完成这项工作 如果我错了 请随时纠正我 但是 如果我有一个文档列表并想将它们全
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • 使用 WSGI 在 Windows XAMPP 中设置 Python 路径

    我正在 Webfaction 上设置实时服务器的开发版本 在本地计算机上的虚拟 Apache 服务器环境 运行没有任何错误 中运行 Django 应用程序 XP 使用 Python 2 6 运行 XAMPP Lite 我可以提交更改通过 G
  • 如何使用 django-pyodbc (ubuntu 16.04) 配置数据库设置 Django-MSSQL?

    我是 Django 新手 目前正在尝试使用另一个数据库来保存我的模型 即MS SQL 我的数据库部署在docker容器中 903876e64b67 microsoft mssql server linux bin sh c opt mssq
  • 根据列索引重命名 Dataframe 列

    是否有内置函数可以按索引重命名 pandas 数据框 我以为我知道列标题的名称 但事实证明第二列中有一些十六进制字符 根据我接收数据的方式 我将来可能会在第 2 列中遇到这个问题 因此我无法将这些特定的十六进制字符硬编码到 datafram
  • 在 matplotlib 中绘制多边形的并集[重复]

    这个问题在这里已经有答案了 我正在尝试绘制几个多边形的并集matplotlib 具有一定的 alpha 水平 我当前的代码在交叉点处颜色较深 有没有办法让交叉路口与其他地方的颜色相同 import matplotlib pyplot as
  • 在 Python 中访问 argparse 的参数值

    我正在尝试为我的程序设置一些简单的标志参数 但无法弄清楚如何访问它们 我有 argparser parser argparse ArgumentParser description Simple PostScript Interpreter
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • 沿轴 0 重复 scipy csr 稀疏矩阵

    我想重复 scipy csr 稀疏矩阵的行 但是当我尝试调用 numpy 的重复方法时 它只是将稀疏矩阵视为对象 并且只会将其作为 ndarray 中的对象重复 我浏览了文档 但找不到任何实用程序来重复 scipy csr 稀疏矩阵的行 我
  • 如何在Tensorflow中保存估计器以供以后使用?

    我按照教程 TF Layers 指南 构建卷积神经网络 以下是代码 https github com tensorflow tensorflow blob r1 1 tensorflow examples tutorials layers
  • Streamlabs API 405 响应代码

    我正在尝试使用Streamlabs API https dev streamlabs com Streamlabs API 使用 Oauth2 来创建应用程序 因此 首先我将使用我的应用程序的用户发送到一个授权链接 其中包含我的应用程序的客
  • 如何使用 Pandas Series 绘制两个不同长度/开始日期的时间序列?

    我正在绘制 每周总事件 的几个熊猫系列对象 系列中的数据events per week看起来像这样 Datetime 1995 10 09 45 1995 10 16 63 1995 10 23 83 1995 10 30 91 1995
  • 如何从 nltk 下载器中删除数据/模型?

    我在 python3 NLTK 中安装了一些 NLTK 包 通过nltk download 尝试过它们 但不需要它们 现在想删除它们 我怎样才能删除例如包large grammars来自我的 NLTK 安装 我不想删除完整的 NLTK 安装

随机推荐

  • F#:带有类型定义的引用?

    我正在使用引号 但看不到类型定义的表达式模式 真的没有吗 还是我错过了什么 lt type MyType name string member x Name name gt 给出 引号文字中出现意外的关键字 type 你不能 你只能引用代码
  • Python Spark Dataframe 到 Elasticsearch

    我不知道如何使用 Spark 中的 python 将数据帧写入 Elasticsearch 我按照以下步骤操作here https db blog web cern ch blog prasanth kothuri 2016 05 inte
  • 如何在eclipse软件中获得Redo

    我需要找回我的程序 如何获取Redoeclipse pls 的键盘快捷键任何人都可以帮助我 You can use below code to implement Redo public class TextAreaDemoB extend
  • 如何对 numpy 数组进行舍入?

    我有一个 numpy 数组 如下所示 data np array 1 60130719e 01 9 93827160e 01 3 63108206e 04 我想将每个元素四舍五入到小数点后两位 我怎样才能这样做呢 Numpy 提供了两种相同
  • 计算一年内信用卡每月最低还款额的代码

    请我尝试找出我的推理有什么问题 从而找出我的结果 我正在学习一门在线课程 我需要计算 12 个月内消除信用卡债务所需的最低金额 我得到了年利率 债务金额 余额 的值以及每月还款额应增加的值 10 的倍数 根据我的推理 我生成的代码应该在几个
  • 如何查找Active Directory的全局编录?

    我想在 Active Directory 环境中搜索用户GC DC xxx DC yyy DC zzz格式 但是 如何以编程方式在任意 Active Directory 环境中查找全局编录 每个域名总是对应一个全局目录吗 我可以尝试其他替代
  • 将图像旋转 X 度 C# wpf [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 这已经困扰我很多年了 我只想要一个简单的方法来将图像旋转 X 度 这是针对炮塔防御游戏 其中炮塔需要向某个方向射击 我想要这样的东西 pub
  • Linux 上 C 语言中字符数组和指针的分段错误

    所以我有以下程序 int main char one computer char two another two 1 b one 1 b return 0 它在 one 1 b 行上出现段错误 这是有道理的 因为指针 one 指向的内存必须
  • 如果在图表渲染完成之前调用 FSharpChart.SaveAs (),则保存空白图像

    在 F Interactive 中运行时 我希望以下代码创建一个简单的饼图并将其保存到磁盘 let pie FSharpChart Pie Apples 1 Oranges 2 Bananas 3 FSharpChart SaveAs te
  • 使用Powershell将Excel中的文本转换为数字

    我有一个 Excel 文件 其中三列设置为 数字 但是 当我打开该文件时 我会看到以下内容 我在这里找到了一个有用的链接 堆栈溢出链接 https stackoverflow com questions 68941811 attemptin
  • 对于 AMD 模块,什么时候(或为什么)可以在 Define() 中使用 require() ?

    我对AMD模块 例如使用RequireJs或curl js 的理解是 require 用于异步加载不同的模块 加载后执行回调 fn 要定义模块 您将有单独的脚本使用define 但我见过一些模块使用require 在它们的函数定义中 例如
  • 计算 pandas 系列的*滚动*最大回撤

    编写一个计算时间序列最大回撤的函数非常容易 写下来需要一点点思考O n 时间而不是O n 2 时间 但情况并没有那么糟糕 这将起作用 import numpy as np import pandas as pd import matplot
  • 如何构建一个同时暴露rest和soap服务的Spring Boot jar

    我一直在考虑为开发人员社区构建一个测试 jar 以便公开 API 的下一个版本的预览 让存根返回具有精确格式的预期响应等 我们确实有 REST 和 SOAP API 我想构建 REST 服务不会有任何问题 因为网络上充斥着示例 令人惊讶的是
  • 方面未在 Spring 中执行

    我正在编写一个几乎完全受登录保护的网站 我正在使用 Spring Security 不过 有些页面不受保护 主页 登录页面 注册页面 忘记密码页面 我想要实现的是 如果用户在访问这些非安全页面时未登录 正常显示它们 如果用户已经登录 则重定
  • Firefox41 中的 GWT 重复编码 URL 中的令牌

    包含地点 活动等的 Gwt 应用程序 有没有其他人遇到过 Firefox 41 0 在 URL 标记中重复编码 看起来就像调用 PlaceController goto 时一样 循环直到崩溃 令牌以管道开头 search advanced
  • C# NTLM 哈希计算器

    我最近开始学习C 我尝试用这种语言生成 NTLM 哈希 但找不到为我执行此操作的函数 在 python 3 x 中我会导入hashlib并计算它hashlib new md4 Hello World encode utf 16le 我在 C
  • 用C#以编程方式打开位于计算机中的Word文档

    我正在使用 WinForms 我有一个带有按钮的表单 目标 单击按钮时 打开 Word 文档 文件路径被硬编码到程序中 我不希望用户必须找到Word文档 问题 我收到此错误消息 当我编写代码时 应用程序 下出现红色错误行 private v
  • 未指定 APN?

    我正在创建 httpConnection 但运行应用程序时会出现以下异常 java io IOException 未指定 APN 我认为查看开发人员知识库文章 链接可以解决您的问题 另请参阅此示例代码 private static Stri
  • Eclipse 中的 TestNG,引用未定义的变量 env.DOMAIN_PATH

    当我尝试使用 TestNG 在 Eclipse 中运行单元测试时 我刚刚收到错误 错误消息是 Reference to undefined variable env DOMAIN PATH 但是当我在Intellij或maven中运行它时
  • 使用 jsonpickle 从文件保存和加载对象

    我有以下简单方法使用 jsonpickle 将 python 对象写入文件 def json serialize obj filename use jsonpickle True f open filename w if use jsonp