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

error value: Expecting value: line 1 column 1 (char 0)

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

我有一个应用 Flask。我想使用 Rest api。我有一个 app.py 文件,api.py file.I 正在 api.py 文件中编写一个 get 方法。这个方法有一个输入参数(P_ID),这个方法的输出是JSON类型。这个方法运行正确。现在,我想在 app.py 中使用 requests.get 但我遇到了这个错误。

我在 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)

你能帮帮我吗?

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> 语法适用于 flask routing/parsing - 它不是正常的 python 字符串格式化语法

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

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

此外,我的问题已通过此代码解决:

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