【发布时间】:2016-02-15 15:20:01
【问题描述】:
是否有一种简单且或多或少标准的方法将所有变量转储到文件中,例如堆栈跟踪,但带有变量名称和值?在 locals()、globals() 和 dir() 中的那些。 我找不到简单的方法,这是我的“locals()”代码,它不起作用,因为键可以是不同的类型:
vars1 = list(filter(lambda x: len(x) > 2 and locals()[x][:2] != "__", locals()))
如果没有过滤,当我尝试转储变量时出现错误:
f.write(json.dumps(locals()))
# =>
TypeError: <filter object at 0x7f9bfd02b710> is not JSON serializable
我认为一定有比手动操作更好的方法。
【问题讨论】:
-
您必须为所有类编写自定义序列化器参见:stackoverflow.com/questions/3768895/…
-
@MaximPanfilov, ты че, гонишь что-ли?一个переменные?
-
json сериализует только базовые типы данных, так что придется для каждого небазового тизта написать свой сериали Можно еще использовать pickle и сериализовать такие данные в текст + base64, например, но такие данные можно будет десеризовать
-
be nice。在 stackoverflow.com 上使用英语。如果您需要俄语,请访问ru.stackoverflow.com。
-
不清楚
locals()和“文件中的变量”是如何连接的。要获取所有对象的列表,您可以使用gc.get_objects()。您可能想问:“如何将任意 Python 对象序列化为 JSON?”
标签: python json python-3.x