提取字典文件的一部分

时间:2020-09-19 10:33:08

标签: python json

在说我没有搜索答案之前,我做了,即使我不是Python专家,也没有找到任何明确的答案。 让我清楚一点,我想从一个特定的“氏族”中提取2条信息(“名称”和“成名”)。 在提取的json文件中,信息在[项目]上,然后在[0]和12和[3]和[4]中。在这本关于[积分]的词典中。然后,我的问题在下一个词典中,可以是或在[0]或12或[3]或[4]中。我不知道如何过滤,例如使用“带有标签的过滤器=#9VL9L9Y”之类的过滤器。 这是我的代码:

    data = json.loads(response)

    for item in data ["items"]:
        for p in item ["standings"]:
                for q in p ["clan"]["participants"]:
                    if (p["clan"] = '#9VL9L9YQ'):
                        print("%s %s" % (
                            q["name"],
                            q["fame"],

))

我知道我的行“ if(p [“ clan”] ='#9VL9L9YQ'):“不正确,但这是我想做的。

JSON文件的外观如何:

enter image description here

enter image description here

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

对逻辑重新排序:

data = json.loads(response)

for item in data ["items"]:
    for p in item ["standings"]:
        clan = p["clan"]
        # check tag first:
        if clan["tag"] == '#9VL9L9YQ': # remove extraneous )
            for q in clan["participants"]:
                print("%s %s" % (q["name"], ["fame"]))

答案 1 :(得分:0)

您的代码中存在语法错误,只需对其进行纠正:

替换:

if (p["clan"] = '#9VL9L9YQ'):

使用:

if (p["clan"] == '#9VL9L9YQ'):

注意:您的语法几乎是正确的,只是有一个小而常见的错误要忘记,使用双“ =”进行比较。

相关问题