Python 如何对转换为列表的json进行排序?
假设我有一个像这样的物体:Python 如何对转换为列表的json进行排序?,python,json,list,python-3.x,Python,Json,List,Python 3.x,假设我有一个像这样的物体: [ { "id": 2, "name": "cat" }, { "id": 6, "name": "dog" }, { "id": 8, "name": "horse" }, { "id": 10, "name": "turtle" } ] 我想写一个函数,可以接受输入id并告诉我相关的名称。 如果给动物列表分配了该列表,我如何找到与6相关的动物?animal_list[
[
{
"id": 2,
"name": "cat"
},
{
"id": 6,
"name": "dog"
},
{
"id": 8,
"name": "horse"
},
{
"id": 10,
"name": "turtle"
}
]
我想写一个函数,可以接受输入id并告诉我相关的名称。
如果给动物列表分配了该列表,我如何找到与6相关的动物?animal_list[id==6]?最好能像@ShadowRanger所说的那样将列表转换成字典,但如果不能,则可以将列表理解与这样的if语句结合使用:
my_list = [
{
"id": 2,
"name": "cat"
},
{
"id": 6,
"name": "dog"
},
{
"id": 8,
"name": "horse"
},
{
"id": 10,
"name": "turtle"
}
]
def get_by_id(the_list, id):
found = [dict for dict in the_list if dict['id'] == id]
if found:
return found[0]
return None
print(get_by_id(my_list, 6))
# will output: {'id': 6, 'name': 'dog'}
如果你能像@ShadowRanger所说的那样将列表转换成字典,那就最好了,但是如果你不能,你可以将列表理解与这样的if语句结合使用:
my_list = [
{
"id": 2,
"name": "cat"
},
{
"id": 6,
"name": "dog"
},
{
"id": 8,
"name": "horse"
},
{
"id": 10,
"name": "turtle"
}
]
def get_by_id(the_list, id):
found = [dict for dict in the_list if dict['id'] == id]
if found:
return found[0]
return None
print(get_by_id(my_list, 6))
# will output: {'id': 6, 'name': 'dog'}
动物列表是您在问题中给出的列表
animal_list = [
{
"id": 2,
"name": "cat"
},
{
"id": 6,
"name": "dog"
},
{
"id": 8,
"name": "horse"
},
{
"id": 10,
"name": "turtle"
}
]
def get_animal(id):
found = 0
for i in animal_list:
if animal_list[i]["id"] == id :
found = 1
print animal_list[i]["name"]
if found == 0:
print "animal not found"
动物列表是您在问题中给出的列表
animal_list = [
{
"id": 2,
"name": "cat"
},
{
"id": 6,
"name": "dog"
},
{
"id": 8,
"name": "horse"
},
{
"id": 10,
"name": "turtle"
}
]
def get_animal(id):
found = 0
for i in animal_list:
if animal_list[i]["id"] == id :
found = 1
print animal_list[i]["name"]
if found == 0:
print "animal not found"
您可以将数据作为JSON导入,并使用dict结构进行处理 我已经创建了一个函数,如果存在有效的密钥,它将返回动物名称,如果密钥不存在,它将不返回任何名称
代码:
s = '[{"id": 2,"name": "cat"},{"id": 6,"name": "dog"},{"id": 8,"name": "horse"},{"id": 10,"name": "turtle"}]'
def search_animal(s, num):
import json
data = json.loads(s)
for d in data:
if d['id'] == num:
print(d['name'])
search_animal(s, 2)
search_animal(s, 6)
cat
dog
输出:
s = '[{"id": 2,"name": "cat"},{"id": 6,"name": "dog"},{"id": 8,"name": "horse"},{"id": 10,"name": "turtle"}]'
def search_animal(s, num):
import json
data = json.loads(s)
for d in data:
if d['id'] == num:
print(d['name'])
search_animal(s, 2)
search_animal(s, 6)
cat
dog
您可以将数据作为JSON导入,并使用dict结构进行处理 我已经创建了一个函数,如果存在有效的密钥,它将返回动物名称,如果密钥不存在,它将不返回任何名称
代码:
s = '[{"id": 2,"name": "cat"},{"id": 6,"name": "dog"},{"id": 8,"name": "horse"},{"id": 10,"name": "turtle"}]'
def search_animal(s, num):
import json
data = json.loads(s)
for d in data:
if d['id'] == num:
print(d['name'])
search_animal(s, 2)
search_animal(s, 6)
cat
dog
输出:
s = '[{"id": 2,"name": "cat"},{"id": 6,"name": "dog"},{"id": 8,"name": "horse"},{"id": 10,"name": "turtle"}]'
def search_animal(s, num):
import json
data = json.loads(s)
for d in data:
if d['id'] == num:
print(d['name'])
search_animal(s, 2)
search_animal(s, 6)
cat
dog
我建议转换成一个由
id
键入的dict
,这样你就可以做complete\u dict[6]
(并在O(1)
时间中得到答案,而不是线性O(n)
时间)。我建议转换成一个由id
键入的dict
,这样你就可以做complete\u dict[6]
(并在O(1)
time中得到答案,而不是线性O(n)
time)。