给定 python 解释器抛出的典型错误消息:
TypeError: <sqlalchemy.orm.dynamic.AppenderBaseQuery object at 0x3506490> is not JSON serializable
我可以使用该内存地址使用 python shell 找到有问题的对象吗?
给定 python 解释器抛出的典型错误消息:
TypeError: <sqlalchemy.orm.dynamic.AppenderBaseQuery object at 0x3506490> is not JSON serializable
我可以使用该内存地址使用 python shell 找到有问题的对象吗?
不,你不能。该地址的唯一目的是识别对象以进行调试。
如果你真的,真的想,这不是不可能的。只是很难,而且是一个非常糟糕的主意。
在 CPython 中,您可以使用ctypes
将数字转换为指向您想要的任何类型的指针。sys.executable
并且像任何其他库一样从(和/或实际代码所在的so/dll/framework)加载和调用函数。并定义与 C API 结构匹配的结构。
如果你真的很小心,你会得到一个快速的段错误,而不是把一切都破坏到地狱。如果你真的非常小心,你偶尔可以在没有段错误的情况下完成一些令人讨厌的黑客攻击。
但是,在这种情况下,它不太可能对您有任何好处。当然,在某个时候,0x3506490 处有一个sqlalchemy.orm.dynamic.AppenderBaseQuery
对象……但是一旦该对象超出范围,它可能就被释放了,所以那个位置可能有任何东西……</p>