Как найти точное слово в супе json? - PullRequest
1 голос
/ 07 июня 2019

Я выполняю синтаксический анализ метаданных пациента, извлеченных из URL-адреса, и пытаюсь получить доступ к полю 'PatientID'.Тем не менее, есть также поле 'OtherPatientIDs', которое захватывает мой поиск.

Я пытался использовать регулярные выражения, но мне неясно, как сопоставить строку EXACT или как включить ее в мойкод.

Итак, на данный момент я сделал:

response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

PatientID = "PatientID"

lines = soup.decode('utf8').split("\n")
for line in lines:
    if "PatientID" in line:
        PatientID = line.split(':')[1].split('\"')[1].split('\"')[0]
        print(PatientID)

, который успешно находит значения поля PatientID и OtherPatientIDs.Как мне указать, что мне нужно только поле PatientID?

РЕДАКТИРОВАТЬ: меня попросили привести пример того, что я получаю с response.text, и оно имеет вид:

{
    "ID" : "shqowihdojcoughwoeh"
    "LastUpdate: "20190507"
    "MainTags" : {
         "OtherPatientIDs" : "0304992098"
         "PatientBirthDate" : "29/04/1803"
         "PatientID" : "92879837"
         "PatientName" : "LASTNAME^FIRSTNAME"
     },
     "Type" : "Patient"
}

1 Ответ

4 голосов
/ 07 июня 2019

Почему бы вместо этого не использовать библиотеку json?

import json
import requests

response = requests.get(url)
data = json.loads(response.text)

print(data['MainTags']['PatientID'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...