【问题标题】:Need to get all values of a particular key of JSON in python需要在python中获取JSON的特定键的所有值
【发布时间】:2017-10-05 11:41:45
【问题描述】:

我在 python 中从pycurl 获得以下json 数据。我只需要将这些值放入 python 中的列表中。

OUTPUT:
[{ 'name' : 'aaa', 'contact' : '123' },{ 'name' : 'bbb', 'contact' : '345' },{ 'name' : 'ccc', 'contact' : '555' }]

我需要将 name 键的所有这些值放入 python 列表中。

【问题讨论】:

  • 你试过什么没用? (提示:这真的微不足道)

标签: python json python-2.7


【解决方案1】:

这不是一个有效的 json 数据。 JSON 文件中不允许使用单引号。如果是这种情况,您需要先修复 JSON 字符串。

import json

json_data_string = "[{ 'name' : 'aaa', 'contact' : '123' },{ 'name' : 'bbb', 'contact' : '345' },{ 'name' : 'ccc', 'contact' : '555' }]"
json_data_string = json_data_string.replace("'", "\"") #provided JSON content doesn't contains single quotes as part of values.

data = json.loads(json_data_string)
names = map(lambda datum: datum['name'], data)

【讨论】:

  • 是的,但我使用的 web api 正在以这种方式返回数据。
  • 是的,这就是我找路的原因。
  • @brunodesthuilliers 这不是一个有效的 json,但原因与我预测的不同。
  • @LinuxAutomations 我改变了答案。
  • @hspandher 确实-我没有发现单引号问题。
【解决方案2】:

jobtittles = list(map(lambda datum: datum['jobtitle'], jsonVal))

我使用上面的代码来做一些类似的事情,jsonVal = JSON as string 而 ['jobtitle'] 是 JSON 字符串中的键,jobtitles 是一个数组。

它可以用 list() 函数包装 map() 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多