html - 使用 Python 输出到 CGI?错误一直告诉我缺少括号?
问题描述
尝试使用 python 生成以使用 cgi 进行筛选。但是,当我从命令行运行它时,我不断收到一条错误消息,指出它在 'print "Content-type:text/html\r\n\r\n" 行上缺少括号。任何帮助是极大的赞赏。谢谢。
#!/usr/bin/python3
import urllib.request
import json
import os
link = "https://api.nasa.gov/planetary/apod?api_key....."
resp = urllib.request.urlopen(link)
data = resp.read()
print(str(data, 'utf-8'))
returnJson = json.loads(data)
img_url = returnJson['url']
title = returnJson['title']
current_date = returnJson['date']
(filename, headers) = urllib.request.urlretrieve(img_url)
img_file_name = img_url.split('/')[-1]
os.rename(filename, img_file_name)
html = """
<center>
<h1>Astronomy Picture of the Day</h1>
<img src="%s">
<p><b>%s</b></p>
</center>
""" % (img_file_name, title)
html_file_name = 'nasa_apod_%s.html' %current_date
print "Content-type:text/html\r\n\r\n" **Where it says parenthesis**
print '<html>'
print '<head>'
print '<title>Astronomy Picture of the Day</title>'
print '</head>'
print '<body>'
print '<h1>Astronomy Picture of the Day</h1>'
print '</body>'
print '</html>'
解决方案
这是因为您使用的是 python 3。在 python 3print
中是一个函数而不是一个语句。所以这意味着您需要在打印的任何内容周围添加括号。
# this will fail in Python 3
print "Content-type:text/html\r\n\r\n"
# but this will work
print("Content-type:text/html\r\n\r\n")
正如你所做的那样,早些时候print(str(data, 'utf-8'))
推荐阅读
- amazon-web-services - 如何在 AWS Lambda 上禁用出站互联网连接?
- javascript - JavaScript 对象和原语
- python - 多级列和行索引和乘法
- android - 代号一处理图像内存大小?
- spring - 将 spring 升级到 5.0.9
- javascript - 如何使用 $compile 服务在 AngularJS 指令中包含 HTML 数据
- android - Flutter app后台使用compute函数
- javascript - 带有异步功能的 ReferenceError
- ios - 在屏幕之间浏览 - Swift IOS
- ruby-on-rails - 试图让 SMTP 邮件服务器工作,以便在 heroku 上的 rails 应用程序中确认设计