Python 使用Json文件过滤单词列表

Python 使用Json文件过滤单词列表,python,python-3.x,pandas,Python,Python 3.x,Pandas,我的Json文件: { "countries": [ "Australia", "France", "Belgium" ] } 我有一个index_list=[“德国”、“美国”、“爱尔兰、澳大利亚”、“法国”、“比利时”、“肯尼亚”、“西班牙” 我想过滤掉json文件中的所有国家 data_json= json.dumps(data["countries"]) res = filt

我的Json文件:

{
  "countries": [
  "Australia", "France", "Belgium"
  ]
}
我有一个
index_list=[“德国”、“美国”、“爱尔兰、澳大利亚”、“法国”、“比利时”、“肯尼亚”、“西班牙”
我想过滤掉json文件中的所有国家

data_json= json.dumps(data["countries"])
res = filter(lambda i: i not in data_json, index_list)
print(res)

这给了我一个错误。

您可以循环遍历所有元素并检查它们是否存在于json列表中,而不是过滤器

import json

data = {"countries": ["Australia", "France", "Belgium"]}

index_list = ["Germany", "USA", "Ireland", "Australia", "France", "Belgium", "Kenya", "Spain"]

data_json= json.dumps(data["countries"]) 
res = [item for item in index_list if item not in data_json] 
print(res)

结果:
[‘德国’、‘美国’、‘爱尔兰’、‘肯尼亚’、‘西班牙’]

您可以循环遍历所有元素,并检查它们是否存在于json列表中

import json

data = {"countries": ["Australia", "France", "Belgium"]}

index_list = ["Germany", "USA", "Ireland", "Australia", "France", "Belgium", "Kenya", "Spain"]

data_json= json.dumps(data["countries"]) 
res = [item for item in index_list if item not in data_json] 
print(res)

结果:
[‘德国’、‘美国’、‘爱尔兰’、‘肯尼亚’、‘西班牙’]

您可以将您的JSON数据强制转换为list(),并使用list comprehension过滤其他数据

import json

data_json = list(json.load(open('file.json'))['countries'])

index_list = ['Germany', 'USA', 'Ireland', 'Australia', "France", 'Belgium', "Kenya", "Spain"]

answer = [country for country in index_list if country not in data_json]
print(answer)

您可以将JSON数据强制转换为list(),并使用列表理解过滤其他数据

import json

data_json = list(json.load(open('file.json'))['countries'])

index_list = ['Germany', 'USA', 'Ireland', 'Australia', "France", 'Belgium', "Kenya", "Spain"]

answer = [country for country in index_list if country not in data_json]
print(answer)

这里是熊猫索引的一种方法。我们不需要循环(或列表理解),因为索引包含一个
difference()
方法

import pandas as pd

data = {"countries": ["Australia", "France", "Belgium"]}
index_list = ["Germany", "USA", "Ireland", "Australia", "France", 
              "Belgium", "Kenya", "Spain"]

result = pd.Index(index_list).difference(data['countries']).to_list()
print(result)

['Germany', 'Ireland', 'Kenya', 'Spain', 'USA']

这里是熊猫索引的一种方法。我们不需要循环(或列表理解),因为索引包含一个
difference()
方法

import pandas as pd

data = {"countries": ["Australia", "France", "Belgium"]}
index_list = ["Germany", "USA", "Ireland", "Australia", "France", 
              "Belgium", "Kenya", "Spain"]

result = pd.Index(index_list).difference(data['countries']).to_list()
print(result)

['Germany', 'Ireland', 'Kenya', 'Spain', 'USA']
尝试
'.join(filter(lambda i:i not in data_json,index_list))
。这是因为
filter()
创建一个filter对象,然后您必须将其转换为您想要使用它的任何类型,如
str
list
等等,这不是一个错误,而是一个filter对象try
'.join(filter(lambda i:i not in data_json,index_list))
。这是因为
filter()
创建了一个filter对象,然后您必须将其转换为您想要使用的任何类型,例如
str
list
等等,它不是一个错误,而是一个filter对象