У меня есть только один ключ, но нужно извлечь объекты на основе рейтинга - PullRequest
0 голосов
/ 17 февраля 2020

Могу ли я получить наборы слов или слова, используя оценку, даже если все это под одной клавишей? Я пытался извлечь json объектов на основе, если их рейтинг меньше 1. Тем не менее, весь синтаксис онлайн-поиска основан на ключе. Но у меня есть только один ключ. Могу ли я искать по атрибуту объекта вместо этого?

JSON документ:

"connections": [
        {
            "synset": 5995898,
            "rating": 1.0,
            "words": [
                "monetarism"
            ],
            "examples": []
        },
        {
            "synset": 1558749,
            "rating": 0.6,
            "words": [
                "driven",
                "impelled"
            ],
            "examples": [
                "felt impelled to take a stand against the issue"
            ]
        },
        {
            "synset": 1421122,
            "rating": 0.17204301075268819,
            "words": [
                "plug in",
                "plug into",
                "connect"
            ],
            "examples": [
                "Please plug in the toaster!",
                "Connect the TV so we can watch the football game tonight"
            ]
        },

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Итак, у вас есть один большой массив, который вы можете l oop over:

arr = [
    {
        "synset": 5995898,
        "rating": 1.0,
        "words": [
            "monetarism"
        ],
        "examples": []
    },
    {
        "synset": 1558749,
        "rating": 0.6,
        "words": [
            "driven",
            "impelled"
        ],
        "examples": [
            "felt impelled to take a stand against the issue"
        ]
    },
    {
        "synset": 1421122,
        "rating": 0.17204301075268819,
        "words": [
            "plug in",
            "plug into",
            "connect"
        ],
        "examples": [
            "Please plug in the toaster!",
            "Connect the TV so we can watch the football game tonight"
        ]
    }
]

for item in arr:
    print(item["rating"])
0 голосов
/ 17 февраля 2020

Да, вы легко можете сделать это с помощью функций sorted и filter, см. Примеры в https://docs.python.org/3/howto/sorting.html.

import json

conns = json.loads(your_json_payload)["connections"]
filtered = [  # Do some filtering
    obj for obj in conns
    if (
        obj["rating"] <= 1 and
        "KeyPhrase" in obj["words"]
    )
]
sorted_by_rating = sorted(filtered, key=lambda x: x["rating"])
...