Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Python的ast模块在flask中工作?_Python - Fatal编程技术网

如何使Python的ast模块在flask中工作?

如何使Python的ast模块在flask中工作?,python,Python,我有一个python脚本,它使用的是ast.literal\u eval,运行良好 import csv import datetime import time import ast def checkDateTime(): fileName = "Bhuvneshwar Kumar-2018-05-10.csv" mydict = {} myList = [] start = datetime.datetime.strptime("2018-05-10 14:

我有一个python脚本,它使用的是
ast.literal\u eval
,运行良好

import csv
import datetime
import time
import ast

def checkDateTime():
    fileName = "Bhuvneshwar Kumar-2018-05-10.csv"
    mydict = {}
    myList = []
    start = datetime.datetime.strptime("2018-05-10 14:41:38", '%Y-%m-%d %H:%M:%S')
    period = 5
    with open(fileName, 'rb') as csv_reader:
        reader = csv.reader(csv_reader)
        print "Reading"
        for row in reader:
            currDict = ast.literal_eval(row[0])
            now = datetime.datetime.strptime(currDict["timeStamp"], '%Y-%m-%d %H:%M:%S')
            if((now >= start) and (now - start <= datetime.timedelta(minutes = 100))):
                myList.append(currDict)
                print currDict["timeStamp"]

checkDateTime()
导入csv
导入日期时间
导入时间
导入ast
def checkDateTime():
fileName=“bhuvenshwar Kumar-2018-05-10.csv”
mydict={}
myList=[]
start=datetime.datetime.strtime(“2018-05-10 14:41:38”,“%Y-%m-%d%H:%m:%S”)
周期=5
打开(文件名为“rb”)作为csv_读取器:
读卡器=csv.reader(csv\U读卡器)
打印“阅读”
对于读取器中的行:
currDict=ast.literal\u eval(第[0]行)
现在=datetime.datetime.strtime(currDict[“timeStamp”],“%Y-%m-%d%H:%m:%S”)
如果((现在>=start)和(现在-start=start)和(现在-start)
应改为

for row in reader:
错误是读取行中的反斜杠n。如果将它们作为行读取,问题将得到解决。为了确保读取的内容是行而不仅仅是字符串,需要导入以在reader中迭代,而不是在文件对象:csv\U reader中迭代

完整的工作代码将是:

from __future__ import print_function
import sys


from flask import Flask, render_template, redirect, url_for, request
import os
import csv
import datetime
import time
from testDict import entityDict, date
import json
import ast

app = Flask(__name__)
app.secret_key = os.urandom(24)

@app.route("/")

def helloFromBubble():
    return "Hi there!"

@app.route("/tweetsAllReq")
def stream():
    fileName = "#DDvSRH-2018-05-10-Watson.csv"
    csv_reader = csv.reader(FileTailer(open(fileName)))
    def generate():
        for row in csv_reader:
            yield '{}\n'.format(json.dumps(row))
    return app.response_class(generate(), mimetype='text/plain')

@app.route("/tweetsTimeFrame", methods = ["GET"])
def streamEntity():
  tweetList = []
  currDict = None
  entity = request.args.get("entity")
  startTime = request.args.get("startTime")
  period = int(request.args.get("period"))
  empty = []
  if(period == None):
    empty.append("period")
  if(startTime == None):
    empty.append("start")
  if(entity == None):
    empty.append(entity)
  if(len(empty) > 0):
    return "Status: Failure. Reason: Failed to load " + str(empty)
  fileName = str(entity) + "-" + str(date) + ".csv"
  start = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M:%S')
  with open(fileName, 'rb') as csv_reader:
    reader = csv.reader(csv_reader)
    for row in reader:
      currDict = ast.literal_eval(row[0])
      now = datetime.datetime.strptime(currDict["timeStamp"], '%Y-%m-%d %H:%M:%S')
      if((now >= start) and (now - start <= datetime.timedelta(minutes = period))):
        tweetList.append(currDict)
  return json.dumps(tweetList)

if(__name__ == "__main__"):
    app.run(debug = True, port = 5000)
from\uuuuu future\uuuuu导入打印功能
导入系统
从flask导入flask,呈现模板,重定向,url,请求
导入操作系统
导入csv
导入日期时间
导入时间
从testDict导入entityDict,日期
导入json
导入ast
app=烧瓶(名称)
app.secret_key=os.uradom(24)
@附件路线(“/”)
def HellofRombuble():
返回“你好!”
@应用程序路径(“/tweetsAllReq”)
def stream():
fileName=“#DDvSRH-2018-05-10-Watson.csv”
csv_reader=csv.reader(FileTailer(打开(文件名)))
def generate():
对于csv_读取器中的行:
产生'{}\n'。格式(json.dumps(行))
返回app.response_类(generate(),mimetype='text/plain')
@app.route(“/tweetsimeframe”,methods=[“GET”])
def streamEntity():
tweetList=[]
currDict=无
实体=request.args.get(“实体”)
startTime=request.args.get(“startTime”)
period=int(request.args.get(“period”))
空=[]
如果(期间==无):
空。追加(“期间”)
如果(开始时间==无):
空。追加(“开始”)
如果(实体==无):
empty.append(实体)
如果(len(空)>0):
返回“状态:失败。原因:加载失败”+str(空)
fileName=str(实体)+“-”+str(日期)+“.csv”
start=datetime.datetime.strtime(开始时间,%Y-%m-%d%H:%m:%S)
打开(文件名为“rb”)作为csv_读取器:
读卡器=csv.reader(csv\U读卡器)
对于读取器中的行:
currDict=ast.literal\u eval(第[0]行)
现在=datetime.datetime.strtime(currDict[“timeStamp”],“%Y-%m-%d%H:%m:%S”)

如果((现在>=开始)和(现在-开始),则这是一个包含csv内容的csv文件!
for row in reader:
from __future__ import print_function
import sys


from flask import Flask, render_template, redirect, url_for, request
import os
import csv
import datetime
import time
from testDict import entityDict, date
import json
import ast

app = Flask(__name__)
app.secret_key = os.urandom(24)

@app.route("/")

def helloFromBubble():
    return "Hi there!"

@app.route("/tweetsAllReq")
def stream():
    fileName = "#DDvSRH-2018-05-10-Watson.csv"
    csv_reader = csv.reader(FileTailer(open(fileName)))
    def generate():
        for row in csv_reader:
            yield '{}\n'.format(json.dumps(row))
    return app.response_class(generate(), mimetype='text/plain')

@app.route("/tweetsTimeFrame", methods = ["GET"])
def streamEntity():
  tweetList = []
  currDict = None
  entity = request.args.get("entity")
  startTime = request.args.get("startTime")
  period = int(request.args.get("period"))
  empty = []
  if(period == None):
    empty.append("period")
  if(startTime == None):
    empty.append("start")
  if(entity == None):
    empty.append(entity)
  if(len(empty) > 0):
    return "Status: Failure. Reason: Failed to load " + str(empty)
  fileName = str(entity) + "-" + str(date) + ".csv"
  start = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M:%S')
  with open(fileName, 'rb') as csv_reader:
    reader = csv.reader(csv_reader)
    for row in reader:
      currDict = ast.literal_eval(row[0])
      now = datetime.datetime.strptime(currDict["timeStamp"], '%Y-%m-%d %H:%M:%S')
      if((now >= start) and (now - start <= datetime.timedelta(minutes = period))):
        tweetList.append(currDict)
  return json.dumps(tweetList)

if(__name__ == "__main__"):
    app.run(debug = True, port = 5000)