问题
Im using Postman for the first time (newbie) with testing out a Flask App that accepts Json data and Postman keeps giving me this error There was an error in evaluating the test script: SyntaxError: Unexpected token ':' but my Flask App seems ok. The Flask app accepts the Json and either returns a 200 or 400 and that seems to be working fine...
This is the Json I am sending to Flask thru the Postman console:
{"Date": "2020-13-16T13:37:22.501743", "MeterReading": 5}
Anything worrisome?? Any tips greatly appreciated..
In Flask I can save the data to sql which seems to be working OK 200 response.
127.0.0.1 - - [17/Jun/2020 11:39:24] "[37mPOST /dataear HTTP/1.1[0m" 200 -
UPDATE FLASK APP CODE
from flask import Flask, make_response, request, render_template, jsonify, make_response
import pandas as pd
from sqlalchemy import create_engine
from pandas.api.types import is_string_dtype
from pandas.api.types import is_numeric_dtype
app = Flask(__name__)
@app.route('/dataear', methods=['POST'])
def getdata():
r = request.get_json()
if r.keys() == {'Date', 'MeterReading'}:
try:
df = pd.json_normalize(r)
df = df.set_index('Date')
#print(is_string_dtype(df.index))
#print(is_numeric_dtype(df.MeterReading))
if is_string_dtype(df.index) and is_numeric_dtype(df.MeterReading):# checker to verify MeterReading is numerical
engine = create_engine('sqlite:///save_pandas.db', echo=True)
sqlite_connection = engine.connect()
sqlite_table = "OutsideTemp_MeterReading"
df.to_sql(sqlite_table, sqlite_connection, if_exists='append')
sqlite_connection.close()
print("Data saved to sql!")
return 'OK', 200
else:
print("rejected incorrect meter data unable to save data to SQL")
return 'Bad Request', 400
except:
print("rejected incorrect date format unable to save data to SQL")
return 'Bad Request', 400
else:
print("rejected incorrect keys for incoming json data")
return 'Bad Request', 400
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)
Python CONSOLE RUNNING FLASK APP
Incoming..
2020-06-17 11:39:16,024 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1
2020-06-17 11:39:16,024 INFO sqlalchemy.engine.base.Engine ()
2020-06-17 11:39:16,027 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS VARCHAR(60)) AS anon_1
2020-06-17 11:39:16,028 INFO sqlalchemy.engine.base.Engine ()
2020-06-17 11:39:16,030 INFO sqlalchemy.engine.base.Engine PRAGMA main.table_info("OutsideTemp_MeterReading")
2020-06-17 11:39:16,030 INFO sqlalchemy.engine.base.Engine ()
2020-06-17 11:39:16,038 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2020-06-17 11:39:16,040 INFO sqlalchemy.engine.base.Engine INSERT INTO "OutsideTemp_MeterReading" ("Date", "MeterReading") VALUES (?, ?)
2020-06-17 11:39:16,042 INFO sqlalchemy.engine.base.Engine ('2020-12-16T13:37:22.501743', 567234)
2020-06-17 11:39:16,046 INFO sqlalchemy.engine.base.Engine COMMIT
2020-06-17 11:39:16,055 INFO sqlalchemy.engine.base.Engine SELECT name FROM sqlite_master WHERE type='table' ORDER BY name
2020-06-17 11:39:16,057 INFO sqlalchemy.engine.base.Engine ()
Data saved to sql!
127.0.0.1 - - [17/Jun/2020 11:39:16] "[37mPOST /dataear HTTP/1.1[0m" 200 -
来源:https://stackoverflow.com/questions/62434156/there-was-an-error-in-evaluating-the-test-script-syntaxerror-unexpected-token