繁体   English   中英

字典列表的列表理解

[英]list comprehension that a list of dictionaries

我有一个 mongo db cusor object 被转换成一个列表。 该列表是字典列表,但是当我 go 访问该值时,我在下面收到此错误:

 in <listcomp>
    for e in app.db.entries.find_one({})
TypeError: string indices must be integers

代码在这里列出:

import datetime

from flask import Flask, render_template, request

from pymongo import MongoClient

app = Flask(__name__)

client = MongoClient("mongodb+srv://username:password@MicroBlog.0oxexa.mongodb.net/test")

app.db = client.MicroBlog

@app.route("/", methods = ["GET", "POST"])

@app.route("/home", methods = ["GET", "POST"])

def home():
    if request.method == "POST":

        content = request.form["content"]

        formattedDate =datetime.datetime.today().strftime("%Y-%m-%d")

        app.db.entries.insert_one({"content": content, "date": formattedDate})

        mongo_entries_with_date = [
        (
        e["content"],
        e["date"],
        datetime.datetime.strptime(e["date"], "%Y-%m-%d").strftime("%b %d")
        )
        for e in app.db.entries.find_one({})
        ]

        return render_template("home.html", entries = mongo_entries_with_date), 201

return render_template("home.html"), 200

只需在mongo_entries_with_date之前的行上执行e = app.db.entries.find_one({})并去掉方括号。 或在app.db.entries.find_one({})周围加上方括号。

通过使用代码的 rest 按原样将 app.db.entries.find_one({}) 更改为 app.db.entries.find({}),这种方式也很有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM