我正在使用JSON获取一些天气数据并将此数据输出到这样的CSV文件中。
我想知道如何使用Flask(已安装)在Web浏览器中显示我的CSV文件?这是我目前为止的代码(工作)
#Source : http://www.wunderground.com/weather/api/d/docs?d=resources/code-samples
import urllib2
import json
import time
import csv
from datetime import datetime#set the time
from flask import Flask, send_file
app = Flask(__name__)
app.debug = True
def get_information(url):
try:
wunder_url_obj = urllib2.urlopen(url)
except:
print 'Could not open URL'
return None
else:
now = datetime.now()
current_year = now.year
current_day = now.day
current_month = now.month
current_hour = now.hour
current_minute = now.minute
current_second = now.second
json_string = wunder_url_obj.read()
parsed_json = json.loads(json_string)
temp_f = parsed_json['current_observation']['temp_f']
weather = parsed_json['current_observation']['weather']
date = str(now.month) + "/" + str(now.day) + "/" + str(now.year) + " " + str(now.hour) + ":" + str(now.minute) + ":" + str(now.second)
now = datetime.now()
header = "Datetime,current condition,Temperature,\n"
with open('out.csv', 'a+') as f:
f.seek(0, 2) # os.SEEK_END, on Windows file position set to 0 even in append mode.
if f.tell() == 0:
f.write(header)
f.write(','.join([date, str(temp_f), weather]))
f.write('\n')
f.close()
get_information('http://api.wunderground.com/api/8d3b5d3fa03ddb6f/conditions/weather/q/China/Beijing.json')
@app.route("/weather.csv")
def weather():
url = 'http://api.wunderground.com/api/8d3b5d3fa03ddb6f/conditions/weather/q/China/Beijing.json'
get_information(url)
return send_file("out.csv")
if __name__ == '__main__':
app.run()
这是我编辑的截图:
答案 0 :(得分:4)
我认为你正在寻找send_file()。烧瓶终点看起来像:
from flask import Flask, send_file
app = Flask(__name__)
app.debug = True
# Your get_information method
@app.route("/weather.csv")
def weather():
url = "http://api.wunderground.com/api/8d3b5d3fa03ddb6f/conditions/weather/q/China/Beijing.json"
get_information(url)
return send_file("out.csv")
if __name__ == '__main__':
app.run()