首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配实例2中的pymongo列表

匹配实例2中的pymongo列表
EN

Stack Overflow用户
提问于 2018-04-18 00:18:04
回答 1查看 41关注 0票数 0

我使用pymongo中的管道来查询json文件。

我有一个名单,“六个城市”,包含了6个‘城市’的‘最高数量’的书店,也就是最少的书店。(包含6个pymongo实例)

代码语言:javascript
复制
    {'_id': 'city1', 'count': 84}
    {'_id': 'city2', 'count': 65}
    {'_id': 'city3', 'count': 61}
    {'_id': 'city4', 'count': 59}
    {'_id': 'city5', 'count': 84}
    {'_id': 'city6', 'count': 64}

我有第二个列表,“旅行城市”,在json文件中的每一个‘城市’( 20+)中都有旅行书店的数量。(包含20+pymongo实例) {'_id':'city1','count':42}...etc

请注意:此列表中包含的城市不在第一个列表中。

我想用这些清单来计算6个最高城市的旅游书店的比率。

公用键将是“城市”,这将出现在这两个列表的文件中,即清单2: city1: 42除以列表1: city1: 84 = 0.5

我不知道如何在pymongo中这样做,因为信息在列表中的mongo文档中。

我认为某种嵌套循环会起作用:

代码语言:javascript
复制
 dict={} 
 for i in sixcities: #loop through the first list
   dict[i["_id"]]=i["count"]  
   for i in travelcities: #loop through second list
     dict[i["_id"]]=i["count"]/(dict[i["_id"]]) #ratio

但我得到的结果如下: KeyError:“city15”这个城市没有出现在第一个名单上,它是6个拥有最多书店的城市之一,但在第二个城市中却出现了一家旅游书店。

任何和所有的帮助都是感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-18 01:11:58

代码中的一个问题是,在外部循环和内部循环中都使用相同的变量“i”。

考虑这个代码,对于第一个列表中的每个城市,在第二个列表中搜索它,然后计算比率。

代码语言:javascript
复制
dict={} 
for i in sixcities: #loop through the first list
    dict[i["_id"]]=i["count"]  
    for j in travelcities: #loop through second list
        if j["_id"] == i["_id"]:
            dict[i["_id"]]=j["count"]/(dict[i["_id"]]) #ratio

请注意,如果第二个列表中不存在城市,则答案仍然是第一个列表中的城市计数。用你想要的方式处理这个角落的案子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49889258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档