извлечь URL из файла JSON без имени данных с помощью Python - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть файл json, содержащий метаданные 900 статей, и я хочу извлечь из него URL-адреса.мой файл начинается так:

[
{
    "title": "The histologic phenotypes of …",
    "authors": [
        {
            "name": "JE Armes"
        },
    ],
    "publisher": "Wiley Online Library",
    "article_url": "https://onlinelibrary.wiley.com/doi/abs/10.1002/(SICI)1097-0142(19981201)83:11%3C2335::AID-CNCR13%3E3.0.CO;2-N",
    "cites": 261,
    "use": true
},

{
    "title": "Comparative epidemiology of pemphigus in ...",
    "authors": [
        {
            "name": "S Bastuji-Garin"
        },
        {
            "name": "R Souissi"
        }
        ],
        "year": 1995,
        "publisher": "search.ebscohost.com",
    "article_url": "http://search.ebscohost.com/login.aspx?direct=true&profile=ehost&scope=site&authtype=crawler&jrnl=0022202X&AN=12612836&h=B9CC58JNdE8SYy4M4RyVS%2FrPdlkoZF%2FM5hifWcv%2FwFvGxUCbEaBxwQghRKlK2vLtwY2WrNNl%2B3z%2BiQawA%2BocoA%3D%3D&crl=c",
    "use": true
    },
 .........

Я хочу проверить файл с помощью objectpath, чтобы создать json.tree для извлечения URL-адреса.это код, который я хочу выполнить

  1.    import json
  2.    import objectpath
  3.    with open("Data_sample.json") as datafile: data = json.load(datafile)
  4.    jsonnn_tree = objectpath.Tree(data['name of data'])
  5.    result_tuple = tuple(jsonnn_tree.execute('$..article_url'))

Но на шаге 4 для создания дерева я должен вставить имя данных, которые, как мне кажется, отсутствуют в моем файле.Как я могу заменить эту строку?

Ответы [ 3 ]

0 голосов
/ 15 декабря 2018

Вы можете создать дерево следующим образом:

tobj = op.Tree(your_data)
results = tobj.execute("$.article_url")

И в итоге:

results = [x for x in results]

даст:

["url1", "url2", ...]
0 голосов
/ 15 декабря 2018

Вы пытались удалить ссылку и просто использовали:

jsonnn_tree = objectpath.Tree(data)
0 голосов
/ 15 декабря 2018

Вы можете получить все URL статьи, используя понимание списка.

import json

with open("Data_sample.json") as fh:
    articles = json.load(fh)

article_urls = [article['article_url'] for article in articles]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...