错误值:期望值:第1行第1列(字符0)

时间:2019-12-29 09:02:46

标签: python json api flask-restful flask-restplus

我得到错误值:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0).

我有一个应用Flask。我想使用Rest api。我有一个app.py文件和api.py文件。我正在get文件中编写一个api.py方法。此方法具有输入参数(P_ID),并且此方法的输出为JSON类型。此方法可以正确运行。现在,我想在requests.get中使用app.py,但遇到此错误。

我在app.py文件中的代码是:

@app.route('/edit/<int:P_ID>', methods=['GET','POST'])
def update(P_ID):
    if request.method=='GET':
        info = requests.get('http://localhost:5000/edit/<int:P_ID>')
        info = info.json()
    return info

我的api.py文件是:

class ProductEdit(Resource):
    def get(self,P_ID):
        cursor=conn.cursor()
        cursor.execute("SELECT * FROM Tbl_product WHERE P_ID=?",(P_ID))
        columns = [column[0] for column in cursor.description]
        results = []
        for row in cursor.fetchall():
            results.append(dict(zip(columns, row)))
        rest = jsonify(results)
        return rest

api.add_resource(ProductEdit , '/edit/<int:P_ID>')

if __name__ == '__main__':
    flask_app.run(debug=True)

你能帮我吗?

2 个答案:

答案 0 :(得分:1)

info = requests.get('http://localhost:5000/edit/<int:P_ID>')

应该是(对于Python3.6或更高版本)

info = requests.get(f'http://localhost:5000/edit/{P_ID}')

<int:P_ID>语法用于烧瓶路由/解析-这不是正常的python字符串格式化语法

您还应该检查请求的响应,一种简单的方法是检查状态代码

if info.status_code != 200:
    # return a helpful error message here

答案 1 :(得分:0)

此外,我的问题由以下代码解决:

info = requests.get('http://localhost:5000/edit/' + str(P_ID))