#python #json #parsing
Вопрос:
В настоящее время я пытаюсь проанализировать следующий файл JSON с помощью его записей для следующих полей, но у меня возникли проблемы при попытке выполнить итерацию по файлу для этого. Может ли кто-нибудь помочь мне найти эффективный способ разобраться в этом?
import requests
import json
jsonFile = open("/users/bboyf/Downloads/Aaron697_Brekke496_2fa15bc7-8866-461a-9000-f739e425860a.json", "r")
data = json.load(jsonFile)
jsonFile.close()
idValue = data['entry'][223]['resource']['medicationCodeableConcept']['coding'][0]['code']
print(idValue)
r = requests.get('https://rxnav.nlm.nih.gov/REST/interaction/list.json?rxcuis=' idValue)
print(r.text)
Более конкретно, я пытаюсь найти способ найти значения идентификаторов, если во многих записях, хранящихся в файле данных json, их несколько. Существует ли эффективный способ лучше получить эти значения, проанализировав файл или пройдя цикл for в записях?
idValue = data['entry'][223]['resource']['medicationCodeableConcept']['coding'][0]['code']
Кроме того, как бы вы повторили данные, которые имеют следующую иерархию данных?
https://jsonblob.com/f92fabd6-db8b-11eb-bf92-87c0d3acf4df
Комментарии:
1. можете ли вы поделиться схемой JSON? обязательно посмотрите все, что вам нужно для цикла, и, пожалуйста, лучше объясните, что у вас есть, и ваши ожидаемые результаты в качестве примера. откуда и куда.
спасибо.
2. Да, вы можете получить доступ к файлу JSON здесь, который лучше предоставляет схему.
3. jsonblob.com/f92fabd6-db8b-11eb-bf92-87c0d3acf4df
4. Мой ожидаемый результат-вернуть поле кода, которое хранится в подполе «medicationCodeableConcept».
5. На самом деле нет ничего лучше, чем перебирать данные после анализа.
Ответ №1:
Пожалуйста, попробуйте это решение.
import json
# conver string to JSON
f = open("./file.json",)
# returns JSON object as
# dictionary
data = json.load(f)
# Iterate through the json
# list
for obj in data["entry"]:
if "medicationCodeableConcept" in obj["resource"]:
for codes in obj["resource"]["medicationCodeableConcept"]["coding"]:
print("system: {} ncode: {} ndisplay: {}".format(codes['system'], codes['code'], codes['display']))
f.close()