Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对转换为列表的json进行排序?_Python_Json_List_Python 3.x - Fatal编程技术网

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)。