好的,我正在努力提高 python 的使用率,所以我不确定这是开始我正在做的事情的正确方法,但这是我当前的问题...
我需要通过 SOAP 方法获取一些信息,现在只使用部分信息,但存储整个结果以供将来使用(我们需要尽可能少地使用该服务)。在寻找访问该服务的最佳方式时,我认为泡沫是可行的方式,而且它很简单,而且在获取数据方面非常有效。但现在我想以某种方式保存结果,最好是序列化/在数据库中,这样我可以稍后将其取出并使用它。
执行此操作的最佳方法是什么,看起来 pickle/json 不是一个选项?谢谢!
更新 在 How can I pickle suds results? 阅读最佳答案让我更好地理解为什么这不是一个选项,我想我一直在用我需要的信息重新创建一个基本对象?
最佳答案
我一直在使用以下方法将 Suds 对象转换为 JSON:
from suds.sudsobject import asdict
def recursive_asdict(d):
"""Convert Suds object into serializable format."""
out = {}
for k, v in asdict(d).items():
if hasattr(v, '__keylist__'):
out[k] = recursive_asdict(v)
elif isinstance(v, list):
out[k] = []
for item in v:
if hasattr(item, '__keylist__'):
out[k].append(recursive_asdict(item))
else:
out[k].append(item)
else:
out[k] = v
return out
def suds_to_json(data):
return json.dumps(recursive_asdict(data))
关于python - 在 python 中序列化一个 suds 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2412486/