Серия объектов JSON в преобразование данных - PullRequest
0 голосов
/ 04 октября 2018

Я скачал образец набора данных из здесь , который представляет собой серию объектов JSON.Согласно веб-сайту, каждый объект JSON выглядит следующим образом:

{
  "id": "4cd223df721b722b1c40689caa52932a41fcc223",
  "title": "Knowledge-rich, computer-assisted composition of Chinese couplets",
  "paperAbstract": "Recent research effort in poem composition has focused on the use of automatic language generation...",
  "entities": [
    "Conformance testing",
    "Natural language generation",
    "Natural language processing",
    "Parallel computing",
    "Stochastic grammar",
    "Web application"
  ],
  "s2Url": "https://semanticscholar.org/paper/4cd223df721b722b1c40689caa52932a41fcc223",
  "s2PdfUrl": "",
  "pdfUrls": [
    "https://doi.org/10.1093/llc/fqu052"
  ],
  "authors": [
    {
      "name": "John Lee",
      "ids": [
        "3362353"
      ]
    },
    "..."
  ],
  "inCitations": [
    "c789e333fdbb963883a0b5c96c648bf36b8cd242"
  ],
  "outCitations": [
    "abe213ed63c426a089bdf4329597137751dbb3a0",
    "..."
  ],
  "year": 2016,
  "venue": "DSH",
  "journalName": "DSH",
  "journalVolume": "31",
  "journalPages": "152-163",
  "sources": [
    "DBLP"
  ],
  "doi": "10.1093/llc/fqu052",
  "doiUrl": "https://doi.org/10.1093/llc/fqu052",
  "pmid": ""
}

В конце концов мне нужно работать только с разделом paperAbsrtract.Я загружаю это в фрейм данных pandas, как показано ниже

filename = "sample-S2-records"
df = pd.read_json(filename, lines=True) 
df.head()

. Здесь отображаются все пустые столбцы doi и doiUrl.

Кроме того, если я выберу только абстрактный столбец и извлечу заголовок, я вижу 2 из 5 пустых строк

abstract = df['paperAbstract']
abstract.head()

0                                                     
1    The search for new administrators in complex s...
2    The human N-formyl peptide receptor (FPR) is a...
3    Serum CA 19-9 (2-3 sialyl Le(a)) is a marker o...
4                                                     
Name: paperAbstract, dtype: object

Похоже, способ создания фрейма данных - неправильный подход,Я уверен, что у них нет пропущенных столбцов.

Чего мне не хватает?Любое предложение?

1 Ответ

0 голосов
/ 04 октября 2018

Я изучил образец ваших данных и думаю, что вы получаете правильные результаты.Если бы мы проанализировали JSON вручную:

import json
filename = "sample-S2-records"
with open(filename, 'r') as f:
    d = [json.loads(x) for x in f]

Затем просмотрите список словарей, вот что мы видим:

>>> d[0]['paperAbstract']
''

Так что это действительно похоже на первые строки paperAbstract поле не заполнено.

PS: я думаю, что вопрос должен быть закрыт, я сомневаюсь, что это поможет кому-то еще

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...