为什么我的Python脚本每次运行都会给我一个错误?

时间:2013-11-25 18:52:54

标签: python json apache

我检查了服务器日志,但我似乎找不到任何可以解释为什么会这样做的内容。每次加载页面时,都会收到“500 Internal Server Error”消息。我要做的就是更新JSON文件。

#!/usr/bin/env python

import cgi
import json

new_data = {"2": {"title": "what", "date": "tomorrow"}}

with open("jobs.json") as file:
    data = json.load(file)

data.update(new_data)

with open('test.json', 'w') as file:
    json.dump(data, file)

1 个答案:

答案 0 :(得分:2)

在发送任何内容之前,您需要先发送一些内容类型标头,来自Apache's docs

  

“常规”编程和CGI编程之间存在两个主要区别。

     

首先,CGI程序的所有输出必须以a开头   MIME类型标题。这是HTTP标头,告诉客户端什么类型   它收到的内容。大多数情况下,这将是:

Content-type: text/html

所以它会是这样的:

#!/usr/bin/env python

import cgi
import json
import sys

new_data = {"2": {"title": "what", "date": "tomorrow"}}

# print "Content-type: application/json\r\n\r\n" to the output stream
sys.stdout.write("Content-type: application/json\r\n\r\n") # read the comment

with open("jobs.json") as file:
    data = json.load(file)

data.update(new_data)

with open('test.json', 'w') as file:
    json.dump(data, file)

还要检查这些文件的路径以及您写入可写目录的路径。