比较两个词典列表中的价值的Pythonic方法

比较两个词典列表中的价值的Pythonic方法,第1张

概述我是 Python的新手,在 Python中我仍然试图摆脱C编码技术,所以如果这是一个微不足道的问题,请原谅我.我似乎无法找到最恐怖的方式来做到这一点. 我有两个dicts列表.两个列表中的各个dicts可能包含嵌套的dicts. (这实际上是一些Yelp数据,如果你很好奇.)第一个dicts列表包含这样的条目: {business_id': 'JwUE5GmEO-sH1FuwJgKBlQ', 我是 Python的新手,在 Python中我仍然试图摆脱C编码技术,所以如果这是一个微不足道的问题,请原谅我.我似乎无法找到最恐怖的方式来做到这一点.

我有两个dicts列表.两个列表中的各个dicts可能包含嵌套的dicts. (这实际上是一些Yelp数据,如果你很好奇.)第一个dicts列表包含这样的条目:

{business_ID': 'JwUE5GmEO-sH1FuwJgKBlQ','categorIEs': ['Restaurants'],'type': 'business' ...}

第二个dicts列表包含如下条目:

{'business_ID': 'vcNAWiLM4dR7D2nwwJ7nCA','date': '2010-03-22','revIEw_ID': 'RF6UnRTtG7tWMcrO2GEoAg','stars': 2,'text': "This is a basic revIEw",...}

我想要做的是提取第二个列表中与第一个列表中的特定类别匹配的所有条目.例如,如果我对餐馆感兴趣,我只想要第二个列表中的entires,其中business_ID与第一个列表中的business_ID匹配,而“餐厅”字样出现在类别的值列表中.

如果我在sql中将这两个列表作为表,我会在business_ID属性上进行连接,然后只是一个简单的过滤器来获取我想要的行(其中餐馆类别或类似的东西).

这两个列表非常大,所以我遇到了效率和内存空间问题.在我将所有这些内容推送到sql数据库之前,有人能给我一些指示吗?我和Pandas搞砸了一些,所以我对此有一些有限的经验.我在合并过程中遇到了麻烦.

解决方法 假设您的列表名为l1和l2:

来自l1的所有元素:

[each for each in l1]

来自l1的所有元素与餐厅类别:

[each for each in l1      if 'Restaurants' in each['categorIEs']]

来自l2匹配ID的所有元素与来自l1的元素与餐厅类别:

[x for each in l1 for x in l2    if 'Restaurants' in each['categorIEs']   and x['business_ID'] == each['business_ID'] ]
总结

以上是内存溢出为你收集整理的比较两个词典列表中的价值的Pythonic方法全部内容,希望文章能够帮你解决比较两个词典列表中的价值的Pythonic方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1193280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存