weixin_42206635 2023-12-19 17:33 采纳率: 0%
浏览 58

ValueError: The truth value of a DataFrame is ambiguous.

在执行 return render_template('index_db.html', data=data1)时报以下错误:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

程序为:

from flask import Flask, render_template, request
import dolphindb as ddb
import pandas as pd

app = Flask(__name__)

s = ddb.session()
s.connect("localhost", 8902, "admin", "123456")
@app.route('/', methods=['GET', 'POST'])
def index():
    data1 = None
    if request.method == 'POST':
        # 用户提交了表单
        selected_date = request.form.get('selected_date')
        data1 = query_dolphindb(selected_date)
    # 渲染模板并传递数据
    return render_template('index_db.html', data=data1)

def query_dolphindb(selected_date):
    results1_df = pd.DataFrame()
    tb = s.loadTable(dbPath="dfs://tushare2", tableName="hushen_daily_line")
    s1 = tb.exec('*').limit([2, 5])
    results1_df = s1.toDF()
    return results1_df
if __name__ == '__main__':
    app.run(debug=True)

debug时,跟踪到报错的flask语句为: rv = self.dispatch_request()

 try:
            request_started.send(self, _async_wrapper=self.ensure_sync)
            rv = self.preprocess_request()
            if rv is None:
                rv = self.dispatch_request()
        except Exception as e:
            rv = self.handle_user_exception(e)
        return self.finalize_request(rv)
  • 写回答

2条回答 默认 最新

  • K_n_i_g_h_t_1990 2023-12-19 20:16
    关注
    
    from flask import Flask, render_template, request, abort
    import dolphindb as ddb
    import pandas as pd
     
    app = Flask(__name__)
     
    s = ddb.session()
    s.connect("localhost", 8902, "admin", "123456")
    @app.route('/', methods=['GET', 'POST'])
    def index():
        data1 = None
        if request.method == 'POST':
            # 用户提交了表单
            selected_date = request.form.get('selected_date')
            data1 = query_dolphindb(selected_date)
            # 将data参数转换为一个字典
            return render_template('index_db.html', data=data1.to_dict())
        # 当request.method不是POST时,返回一个默认的响应对象
        return render_template('index_db.html', data=None)
     
    def query_dolphindb(selected_date):
        results1_df = pd.DataFrame()
        tb = s.loadTable(dbPath="dfs://tushare2", tableName="hushen_daily_line")
        s1 = tb.exec('*').limit([2, 5])
        results1_df = s1.toDF()
        return results1_df
    if __name__ == '__main__':
        app.run(debug=True)
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月19日