У меня есть проблема в моем коде, и я не понимаю, как я могу это исправить. По сути, у меня есть файл json, который выглядит следующим образом, в каждой переменной только несколько данных:
{
"metabolites": [
{
"id": "10fthf[c]",
"name": "10-Formyltetrahydrofolate",
"compartment": "c",
"formula": "C20H21N7O7"
},
{
"id": "10fthf[h]",
"name": "10-Formyltetrahydrofolate",
"compartment": "h",
"formula": "C20H21N7O7"
},
{
"id": "10fthf[m]",
"name": "10-Formyltetrahydrofolate",
"compartment": "m",
"formula": "C20H21N7O7"
},
],
"reactions": [
{
"id": "PRISM_solar_litho",
"name": "spectral decomposition of solar light measured from Earth's surface",
"metabolites": {
"photon298[c]": 4.26984325300204e-05,
"photon437[u]": 0.088253056987783,
"photon438[u]": 0.187390761056649,
"photon450[h]": 0.114958292879089,
"photon490[h]": 0.19581,
"photon646[h]": 0.18566429641716,
"photon673[u]": 0.08361649412414,
"photon680[u]": 0.094404940130699,
"photonVis[e]": -1.0
},
"lower_bound": 646.06656,
"upper_bound": 646.06656,
"gene_reaction_rule": "",
"subsystem": "[array(['Spectral decomposition'], dtype='<U22')]"
},
{
"id": "PRISM_solar_exo",
"name": "spectral decomposition of solar light measured from outer space",
"metabolites": {
"photon298[c]": 0.009126633453201,
"photon437[u]": 0.107054407672067,
"photon438[u]": 0.224061663093904,
"photon450[h]": 0.133591526308582,
"photon490[h]": 0.20968,
"photon646[h]": 0.17175215519119,
"photon673[u]": 0.072897947189877,
"photon680[u]": 0.084315507784363,
"photonVis[e]": -1.0
},
"version": "1"
}
мой код:
import json
from os.path import join
data_path= '/home/mathieu/Documents/Memoire/ESCHER_MAPPING'
with open(join(data_path,'icz843_model_PRETTY.json')) as f:
icz843_model = json.load(f)
for x in range(len(icz843_model["metabolites"])):
if(icz843_model["metabolites"][x]["compartment"]=="m"):
L.append(icz843_model["metabolites"][x])
for x in range(len(icz843_model["reactions"])):
for y in range(268):
if(L[y]["id" in icz843_model["reactions"][x]["metabolites"]):
print(icz843_model["reactions"][x])
Предполагается, что мой код извлечь из таблицы reactions
metabolites
, в которой присутствуют идентификаторы списка L.