python - 将 str 类型的字典转换为 float Python

标签 python python-3.x postgresql python-2.7

当我尝试查询 PostgreSQL 数据库并仅检索一列的值然后将其转换为 JSON 时,发生了一些奇怪的事情:

latitude = Places.query.with_entities(Places.latitude).all()
longitude = Places.query.with_entities(Places.longitude).all()
user_schema = UserSchema(many=True, strict = True)
print user_schema
output = user_schema.dump(latitude).data

output = json.dumps([dict(r) for r in output], default=alchemyencoder)
print output         #[{"latitude": 28.6333}, {"latitude": 28.6333},...]
print type(output)   #<type 'str'>

虽然看起来输出的结果是一个字典列表并且可以迭代来执行操作但是在迭代这个字典的过程中我得到了错误:

TypeError: string indices must be integers, not str

所以,我检查了 type(output),它给了我 str,这是为什么?

此外,当我尝试使用

将其转换为 floatint
output = float(output)

我得到一个错误:

ValueError: could not convert string to float: [{"latitude": 28.6333}, {"latitude": 28.6333},....]

最佳答案

如果您不需要字符串,则不应使用 json.dumps() 。怎么样:

代码:

[x["latitude"] for x in output]

测试代码:

latitude = Places.query.with_entities(Places.latitude).all()
longitude = Places.query.with_entities(Places.longitude).all()
user_schema = UserSchema(many=True, strict = True)
print user_schema
output = user_schema.dump(latitude).data

print([x["latitude"] for x in output])

关于python - 将 str 类型的字典转换为 float Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48727819/

相关文章:

python-3.x - 谷歌分析报告 api v4 不显示 isDataGolden

sql - 如何从总和中排除行但仍显示它们?

sql - Postgres 中两个日期之间的周数

python - Django Rest框架一对一关系创建序列化器

python - 如何计算边界框的中心?

python-3.x - 只分配一个GPU给Keras(TF后端)脚本

postgresql - 将具有相同列的多个表的查询合并到一个查询中

python - 在 Scrapy 中使用规范化空间

python - Anaconda pip 与 native Ubuntu pip

python - Python 3 中的 PDF 合并