如何在MongoDB对象中的Json内部的Python中打印值

时间:2018-04-23 11:06:42

标签: python json pymongo

我有这个Json,我需要一个速率值。

 "_id" : ObjectId("5addb57d0043582d48ba898a"),
"success" : true,
"timestamp" : 1524477784,
"base" : "EUR",
"date" : "2018-04-23",
"rates" : {
    "AED" : 4.492662,
    "AFN" : 85.576329,
    "ALL" : 128.39508,
    "AMD" : 586.837094,
    "ANG" : 2.177608,
    "AOA" : 267.092358,
    "ARS" : 24.678283,
    "AUD" : 1.602032,
    "AWG" : 2.177639,
    "AZN" : 2.079155,
    "BAM" : 1.958775,
    "BBD" : 2.446786,
    "BDT" : 101.517146,
    "BGN" : 1.943843,
    "BHD" : 0.460968,
    "NOK" : 9.626194,
 }

这是我的Python代码

import pymongo

uri = "mongodb://127.0.0.1:27017"
client = pymongo.MongoClient(uri)
database = client['db']
collection = database['currency']
collection2 = database['countries']
p = str(input('Insert the country: ')).capitalize()

if p=='Norway':
currency = collection.find_one({'NOK'})
print(currency)

我想在de NOK里面打印这个值,我该怎么办? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

我想你可以通过以下方式来称呼它:

currency = collection.find_one({"NOK"})
print(currency['rates']['NOK'])

答案 1 :(得分:1)

您尝试做的是获取字典中的值,该字典集成在另一个字典中。 JSON返回是字典。

我想集合变量包含JSON返回

获取此数据的一种方法是调用字典并告诉它希望字典返回哪个键,如" NOK"关键在"率"我们将首先调用rate键,然后当字典返回包含" NOK"关键,我们将通过" NOK"返回字典的关键,所以代码如下所示:

    currency = collection["rates"]["NOK"]

另一种方法是使用for循环,它会更长,但可以帮助你理解。

    for key in collection:
        if key == "rates":
            for keyRates in JSON[key]:
                if keyRates == "NOK":
                     currency = JSON[key][keyRates]

希望这有帮助

相关问题