以下代码抛出
TypeError:'datetime'类型的对象不是JSON可序列化的
我知道如何解决。但是,我真正的问题是如果json.dump
中发生任何异常,如何干净地构造代码以避免部分文件。
import datetime
import json
def save(data):
with open('data.txt', 'w') as outfile:
json.dump(data, outfile)
data = dict(sometime=datetime.datetime.now())
save(data)
上面的代码抛出异常并导致部分文件如:
{"sometime":
我应dumps
首先在try/except
中使用<input id="tb1" type="text" name="textbox1">
<input id="tb2" type="text" name="textbox2">
字符串吗?如果有,是否有任何记忆含义需要注意?或者删除except块中的文件?
答案 0 :(得分:2)
使用try/except
块,例如:
def save_json(data, filename):
try:
with open(filename, 'w') as outfile:
json.dump(data, outfile)
except:
try:
os.unlink(filename)
except FileNotFoundError:
pass
如果你想保留例外:
def save_json(data, filename):
try:
with open(filename, 'w') as outfile:
json.dump(data, outfile)
except:
if os.path.exists(filename):
os.unlink(filename)
raise
import datetime
import json
import os
data = dict(sometime=datetime.datetime.now())
save_json(data, 'data.txt')
答案 1 :(得分:0)
这取决于您的JSON数据是由您控制还是来自未知来源。如果它来自某个您无法预测的地方,请使用try...except...
阻止。否则,修复程序以使其始终可用于序列化。