python json 序列化 try/except
python json serialization try/except
我正在尝试序列化一个普通对象(仅属性/值),
我的 class.
中有这个方法
def to_json(self,client):
service=self._service
path="jsonphp/"
path+=client
if not os.path.exists(path):
os.makedirs(path)
with cdd(path):
print os.getcwd()
path=service+".json"
with open(path, 'w') as outfile:
try:
json.dump(self.__dict__, outfile)
except:
print "serialization failed"
try/except 之前的整个部分是导航到正确的文件夹。它似乎工作顺利。但是当我使用这个方法时,它总是打印:serialization failed
from my except
即使创建了我的 file.json 并且数据正确存储在其中:{"_attr1": "On", "_attr2": "On", "_attr3": "Off"}
我认为只有在发生错误时才会访问 except
块。
我的问题是:try/except
的 "normal" 行为是吗?
如果没有,如何获得有关我的 except 捕获的异常的信息?
它会不会是代码中某处(在我调用 to_json()
之前)的异常?
我发现这更像是一个异常处理问题。由于您在整个编程过程中很可能会遇到异常,因此正确处理它们很重要。 except 很少应该如此广泛,如果您不明白为什么会有异常,您应该打印异常。这将使您能够搜索异常并确定问题的根本原因,并在您继续学习时对您有很大帮助 Python。
将您的 except 更改为:
except Exception as e:
print "serialization failed", e
这会将确切的异常打印到您的控制台,并允许您查找或寻求帮助。
我正在尝试序列化一个普通对象(仅属性/值), 我的 class.
中有这个方法def to_json(self,client):
service=self._service
path="jsonphp/"
path+=client
if not os.path.exists(path):
os.makedirs(path)
with cdd(path):
print os.getcwd()
path=service+".json"
with open(path, 'w') as outfile:
try:
json.dump(self.__dict__, outfile)
except:
print "serialization failed"
try/except 之前的整个部分是导航到正确的文件夹。它似乎工作顺利。但是当我使用这个方法时,它总是打印:serialization failed
from my except
即使创建了我的 file.json 并且数据正确存储在其中:{"_attr1": "On", "_attr2": "On", "_attr3": "Off"}
我认为只有在发生错误时才会访问 except
块。
我的问题是:try/except
的 "normal" 行为是吗?
如果没有,如何获得有关我的 except 捕获的异常的信息?
它会不会是代码中某处(在我调用 to_json()
之前)的异常?
我发现这更像是一个异常处理问题。由于您在整个编程过程中很可能会遇到异常,因此正确处理它们很重要。 except 很少应该如此广泛,如果您不明白为什么会有异常,您应该打印异常。这将使您能够搜索异常并确定问题的根本原因,并在您继续学习时对您有很大帮助 Python。
将您的 except 更改为:
except Exception as e:
print "serialization failed", e
这会将确切的异常打印到您的控制台,并允许您查找或寻求帮助。