Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python瓶子模板问题:AttributeError(“dict&”x27;对象没有属性(“city&”)_Python_Mongodb_Bottle - Fatal编程技术网

Python瓶子模板问题:AttributeError(“dict&”x27;对象没有属性(“city&”)

Python瓶子模板问题:AttributeError(“dict&”x27;对象没有属性(“city&”),python,mongodb,bottle,Python,Mongodb,Bottle,作为一个学习项目,我正在使用MongoDB和瓶子作为web服务。我想做的是从MongoDB获取结果并在模板中显示它们。以下是我希望从模板中获得的输出: output.tpl <html><body> %for record in records: <li>{{record.city}} {{record.date}} %end </body></html> 但这导致根本没有输出-一些调试告诉我结果是某种游标: <pymon

作为一个学习项目,我正在使用MongoDB和瓶子作为web服务。我想做的是从MongoDB获取结果并在模板中显示它们。以下是我希望从模板中获得的输出:

output.tpl
<html><body>
%for record in records:
   <li>{{record.city}} {{record.date}}
%end
</body></html>
但这导致根本没有输出-一些调试告诉我结果是某种游标:

<pymongo.cursor.Cursor object at 0x1560dd0>
调试显示我的视图数据看起来正常:

[{'_id': ObjectId('4fe3dfbc62933a0338000001'),
  'city': u'CityName',
  'date': u'Thursday June 21, 2012'},
 {'_id': ObjectId('4fe3dfbd62933a0338000088')
  'city': u'CityName',
  'date': u'Thursday June 21, 2012'},
 {'_id': ObjectId('4fe3dfbd62933a0338000089')
  'city': u'CityName',
  'date': u'Thursday June 21, 2012'}]
但这是我得到的回应。你知道为什么吗

AttributeError(“'dict'对象没有属性'city'”)


编辑:我添加了关于l[str(column)]=row[column]的内容,以便在出现问题的情况下将字典键转换为非unicode字符串,但这两种方式似乎都无关紧要。

您需要使用字典语法来查找属性:

{{record['city']}} {{record['date']}}
可归纳为:

result = db.records.find(query).limit(3)
return template('records_template', records=list(result))

Python之美…

您是否尝试过使用字典语法?示例:
{{record['city']}{{record['date']}}
要返回到原始结果,是否必须在发送到模板之前将其从游标转换为字典?
{{record['city']}} {{record['date']}}
result = db.records.find(query).limit(3)
viewmodel=[]
for row in result:
  l = dict()
  for column in row:
    l[str(column)]=row[column]
  viewmodel.append(l)
return template('records_template', records=viewmodel)
result = db.records.find(query).limit(3)
return template('records_template', records=list(result))