【问题标题】:how to iterate over array of jsons in Python如何在 Python 中迭代 json 数组
【发布时间】:2021-09-12 12:47:11
【问题描述】:

我有一个看起来像这样的数组:

  item =   [{'name': 'first'}, {'name': 'second', 'something': 'something4'},  {'name': 'third', 'hu': 'g'}]

我想写一个给定键的函数,它将返回包含该键的 json。例如:对于first,它将返回{'name': 'first'} 对于third,它将返回{'name': 'third', 'hu': 'g'}

这是我到目前为止写的内容

def func(obj, val_to_search , key_to_search):
    j = json.loads(item)
    for item in j:
        if j[key_to_search] = val_to_search
           return j

func(obj=item, val_to_search='first', key_to_search='name')

但这不起作用。我做错了什么?

【问题讨论】:

  • 你显示的不是 json 列表,而是 dicts 列表。不起作用对问题的描述不是很有帮助。请提供minimal reproducible example
  • 您使用的是单个 = 而不是 == 请在发帖前检查这些拼写错误
  • @U12-Forward,sn-p 中有很多错误,我不确定这是正确的重复
  • 您能否请edit 澄清您想做什么?描述是关于JSON和keys的,关于dicts和value的例子,关于JSON和key-value pairs的代码。

标签: python json


【解决方案1】:

item 已经是一个 Python 对象:

item = [{
    'name': 'first'
}, {
    'name': 'second',
    'something': 'something4'
}, {
    'name': 'third',
    'hu': 'g'
}]


def func(obj, val_to_search, key_to_search):
    for item in obj:
        if item[key_to_search] == val_to_search:
            return item


res = func(obj=item, val_to_search='first', key_to_search='name')
print(res)

输出:

{'name': 'first'}

【讨论】:

    猜你喜欢
    • 2019-08-11
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    相关资源
    最近更新 更多