【问题标题】:read multiple data from csv从 csv 读取多个数据
【发布时间】:2020-06-10 18:16:00
【问题描述】:

我有一个 csv 文件,我需要将其作为列表读取并将每个项目添加到输入表单,但是当我使用特定的 option value 时,我可以通过按逗号添加它们,但是当我从 .csv 文件中读取它们时方法不起作用。可能是什么问题?

with open('templates/Testing.csv') as f:
        reader = csv.reader(f)
        myvalues = next(reader)


@app.route('/', methods=['GET'])
def page_show():
    return render_template('includes/default.html', myvalues=myvalues)

来自.csv方法(按逗号不起作用)

<form action="/action" method="POST">
  <input list="myvalues" multiple>
  <datalist id="myvalues">
    {% for val in myvalues %}
        <option value="{{val}}">{{val}}</option>
    {% endfor %}
  </datalist>
  <input type="submit">
</form>

添加特定值的方法(按逗号起作用)

<form action="/action" method="POST">
  <input list="myvalues" multiple>
  <datalist id="myvalues">
        <option value="one">one</option>
        <option value="two">one</option>
        <option value="three">one</option>
        <option value="four">one</option>
  </datalist>
  <input type="submit">
</form>

【问题讨论】:

  • “按逗号”是什么意思?压在哪里?另外,您的问题与 Python 有什么关系?
  • @DYZ 按下我的输入。它基于flask,python
  • 请将其标记为烧瓶。
  • @DYZ 完成。请再次检查。
  • 你需要用问题相关的python代码编辑问题。

标签: html python-3.x csv flask


【解决方案1】:

我想我至少可以解决你的部分问题。

首先,next() 函数只返回列表的下一项(csv 数据)。而我认为您应该使用 list() 函数。 此函数创建一个列表,您可以在其中循环访问default.html

为了解决default.html中的变量无法访问的问题,它可能会给你以下错误:UnboundLocalError: local variable 'myvalues' referenced before assignment。这意味着您正在尝试将 myvalues 分配给 myvalues 但 python 不知道在哪里查找该变量。请参阅here 的更多信息。

那么你将如何解决这个问题?只需将myvalues 重命名为myData。请看下面的完整代码:

main.py

myvalues = []
with open('templates/Testing.csv') as f:
        reader = csv.reader(f)
        myvalues = next(reader)


@app.route('/', methods=['GET'])
def page_show():
    return render_template('includes/default.html', myData=myvalues)

default.html:


<form action="/action" method="POST">
  <input list="myvalues" multiple>
  <datalist id="myvalues">
    {% for val in myData %}
        <option value="{{val}}">{{val}}</option>
    {% endfor %}
  </datalist>
  <input type="submit">
</form>

顺便说一句,那个

我可以通过按逗号添加它们,但是当我从 .csv 文件中读取它们时,此方法不起作用

我不明白你的意思,请详细说明。

希望这会有所帮助!如果没有,请评论

【讨论】:

  • 感谢您的回复,但在您的示例中,我可以看到来自 csv 的输入中的所有行。我只需要使用 .csv 文件的第一行。第一行中的所有值。
  • 当我说通过按逗号添加它们时,我的意思是我需要从下拉列表中选择第一个值,并通过按逗号或自动添加其他值,我的意思是为下拉列表创建一个循环以再次选择值和再次。您可以查看此link。请帮忙,我问过很多次这样的问题,没有人可以帮忙。
  • 嗨,我会根据第一条评论更改答案。但是对于第二条评论,您应该查看答案hereThis one 似乎是最简单的。希望这会有所帮助
猜你喜欢
  • 2013-07-05
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多