我检查了服务器日志,但我似乎找不到任何可以解释为什么会这样做的内容。每次加载页面时,都会收到“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)
答案 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)
还要检查这些文件的路径以及您写入可写目录的路径。