我有这个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里面打印这个值,我该怎么办? 提前谢谢。
答案 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]
希望这有帮助