Python 使用Json文件过滤单词列表
我的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
{
"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对象