結論
結論としては、冒頭のPythonバージョン指定を変えるのはもちろん
# 修正前
#!/usr/bin/python3.4
# 修正後
#!/usr/bin/python3.6
open命令回りの
f = open(JSONfile,'r')
json_data = json.load(f)
f.close()
というコードについて
try:
with open(JSONfile,'r') as f:
json_data = json.load(f)
except json.JSONDecodeError as e:
json_data['JSONDecodeError'] = e
except:
json_data['Error'] = sys.exc_info()
というふうに書き直したら動くようになりました。
#### バグ発生個所の探し方
Xserverのログを見ると「End of script output before headers:」が出て、結局どこが問題なのか行番号を示さないから、どこの何が原因なのかよくわからんかった。
とりあえずContent-Typeについて改行コードを直すとよいらしい記事も見かけたのでやってみたり。
その際、Content-Typeを最初の方に持っていって、かつエラーが発生しそうなところの直前にprint文をもっていってエラー個所を探していきました。
# 修正前
print("Content-Type: application/json;charset=utf-8\n")
# 修正後
print("Content-Type: application/json;charset=utf-8\r\n\r\n")
面倒くさい。
多分もっと効率よいデバッグ方法があるんだと思うのですけど、どうすれば良いものか?
■広告
田中 賢一郎(著)
5つ星のうち3.8
]]>