为 JSONDecodeError 写一个 loop/exception
Writing a loop/exception for JSONDecodeError
我正在尝试构建一个将在 Tkinter GUI 中打印 JSON 结果的程序,但我有 运行 问题:
如果发布的图像足够清晰以获得结果怎么办?
我知道我可以使用 if、else 循环或异常,但我无法获得我想要的 GUI 结果,如果出现错误,它会告诉用户有错误。
我在终端中遇到的错误是:
File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
到目前为止我的代码是:
if: json.decoder.JSONDecodeError:
oops = tk.Tk()
window_width = oops.winfo_reqwidth()
window_height = oops.winfo_reqheight()
# Gets both half the screen width/height and window width/height
position_right = int(oops.winfo_screenwidth()/2 - window_width/2)
position_down = int(oops.winfo_screenheight()/2 - window_height/2)
# Positions the window in the center of the page.
oops.geometry("+{}+{}".format(position_right, position_down))
main = tk.Label(oops, text='Oops, your Photo could not be analyzed!', font='Verdana 70 bold').pack()
oops.after(5000, oops.destroy)
else:
write = file.write(data)
pretty_json = json.loads(data)
print(pretty_json)
我试过了,除了像这样的异常也没有得到我想要的结果:
try:
write = file.write(data)
pretty_json = json.loads(data)
print(pretty_json)
except json.JSONDecodeError:
oops = tk.Tk()
window_width = oops.winfo_reqwidth()
window_height = oops.winfo_reqheight()
# Gets both half the screen width/height and window width/height
position_right = int(oops.winfo_screenwidth()/2 - window_width/2)
position_down = int(oops.winfo_screenheight()/2 - window_height/2)
# Positions the window in the center of the page.
oops.geometry("+{}+{}".format(position_right, position_down))
main = tk.Label(oops, text='Oops, your Photo could not be nalyzed!', font='Verdana 70 bold').pack()
任何帮助将不胜感激,谢谢!
这段代码解决了我的问题:我需要稍后在我的脚本中添加一个异常,以及打印结果时。
此外,我愚蠢地忘记添加 mainloop
行
try:
global name
name = date_time + "_result.json"
file = open(name, 'wb')
global data
data = response.content
write = file.write(data)
pretty_json = json.loads(data)
print(pretty_json)
except JSONDecodeError:
oops = tk.Tk()
window_width = oops.winfo_reqwidth()
window_height = oops.winfo_reqheight()
# Gets both half the screen width/height and window width/height
position_right = int(window_width/2)
position_down = int(window_height/2)
# Positions the window in the center of the page.
oops.geometry("+{}+{}".format(position_right, position_down))
main = tk.Label(oops, text='Oops!', font='Verdana 80 bold').pack()
detail = tk.Label(oops, text='Your Photo could not be analyzed', font='Verdana 60').pack()
oops.after(5000, oops.destroy)
oops.mainloop()
我正在尝试构建一个将在 Tkinter GUI 中打印 JSON 结果的程序,但我有 运行 问题: 如果发布的图像足够清晰以获得结果怎么办?
我知道我可以使用 if、else 循环或异常,但我无法获得我想要的 GUI 结果,如果出现错误,它会告诉用户有错误。
我在终端中遇到的错误是:
File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
到目前为止我的代码是:
if: json.decoder.JSONDecodeError:
oops = tk.Tk()
window_width = oops.winfo_reqwidth()
window_height = oops.winfo_reqheight()
# Gets both half the screen width/height and window width/height
position_right = int(oops.winfo_screenwidth()/2 - window_width/2)
position_down = int(oops.winfo_screenheight()/2 - window_height/2)
# Positions the window in the center of the page.
oops.geometry("+{}+{}".format(position_right, position_down))
main = tk.Label(oops, text='Oops, your Photo could not be analyzed!', font='Verdana 70 bold').pack()
oops.after(5000, oops.destroy)
else:
write = file.write(data)
pretty_json = json.loads(data)
print(pretty_json)
我试过了,除了像这样的异常也没有得到我想要的结果:
try:
write = file.write(data)
pretty_json = json.loads(data)
print(pretty_json)
except json.JSONDecodeError:
oops = tk.Tk()
window_width = oops.winfo_reqwidth()
window_height = oops.winfo_reqheight()
# Gets both half the screen width/height and window width/height
position_right = int(oops.winfo_screenwidth()/2 - window_width/2)
position_down = int(oops.winfo_screenheight()/2 - window_height/2)
# Positions the window in the center of the page.
oops.geometry("+{}+{}".format(position_right, position_down))
main = tk.Label(oops, text='Oops, your Photo could not be nalyzed!', font='Verdana 70 bold').pack()
任何帮助将不胜感激,谢谢!
这段代码解决了我的问题:我需要稍后在我的脚本中添加一个异常,以及打印结果时。
此外,我愚蠢地忘记添加 mainloop
行
try:
global name
name = date_time + "_result.json"
file = open(name, 'wb')
global data
data = response.content
write = file.write(data)
pretty_json = json.loads(data)
print(pretty_json)
except JSONDecodeError:
oops = tk.Tk()
window_width = oops.winfo_reqwidth()
window_height = oops.winfo_reqheight()
# Gets both half the screen width/height and window width/height
position_right = int(window_width/2)
position_down = int(window_height/2)
# Positions the window in the center of the page.
oops.geometry("+{}+{}".format(position_right, position_down))
main = tk.Label(oops, text='Oops!', font='Verdana 80 bold').pack()
detail = tk.Label(oops, text='Your Photo could not be analyzed', font='Verdana 60').pack()
oops.after(5000, oops.destroy)
oops.mainloop()