如何打印和计算MongoDB中Json内部的Python值
我在mongodb中有这个Json如何打印和计算MongoDB中Json内部的Python值,python,json,mongodb,Python,Json,Mongodb,我在mongodb中有这个Json { "_id" : ObjectId("5aba203f00435837802f9c49"), "AED" : 4.572098, "AFN" : 86.093419, "ALL" : 130.478529, "AMD" : 597.524404, "ANG" : 2.216574, "AOA" : 264.413246, } 这是用Python编写的 import pymongo uri = "mongodb://127.0.0.1:27017" clie
{
"_id" : ObjectId("5aba203f00435837802f9c49"),
"AED" : 4.572098,
"AFN" : 86.093419,
"ALL" : 130.478529,
"AMD" : 597.524404,
"ANG" : 2.216574,
"AOA" : 264.413246,
}
这是用Python编写的
import pymongo
uri = "mongodb://127.0.0.1:27017"
client= pymongo.MongoClient(uri)
database = client['countries_db']
collection = database['currency']
currency =[AED['AED'] for AED in collection.find({})]
res=currency*2
print(res)
输出:
[4.572098,4.572098]
当我打印它时,它是一个字符串值,它重复AED两次。
有没有办法将该值称为float并进行计算?
谢谢。问题不在于它返回的是字符串值;它正在返回一个列表。当你尝试成倍增加一个列表时,它只会重复它自己很多次,这就是你在这里看到的。如何解决它取决于您希望从
find()
操作中返回多少元素,以及您希望如何处理这些元素
find()
操作的结果中需要1个元素,则应将其转换为find_one()
,该操作将返回一个浮点,使乘法操作与以下代码的预期效果相同:
item = collection.find_one({}) # Returns a single doc. Note the lack of square brackets
currency = item['AED'] # Get the desired key of the document
res = currency * 2
res=map(lambda x:x*2,currency)
我只需要导入一个元素,它不起作用,我想要对象中的元素,我必须在Mongo中导入对象吗?查看对我的响应的更改。您仍然需要删除包装调用的方括号,该调用正在创建一个列表(除了调用find(),该调用也返回一个列表)。