Python json文件操作基因组规模模型
我的代码中有一个问题,我不知道如何修复它。基本上,我有一个json文件,看起来像这样,每个变量中只有几个数据:Python json文件操作基因组规模模型,python,json,model,extraction,genome,Python,Json,Model,Extraction,Genome,我的代码中有一个问题,我不知道如何修复它。基本上,我有一个json文件,看起来像这样,每个变量中只有几个数据: { "metabolites": [ { "id": "10fthf[c]", "name": "10-Formyltetrahydrofolate", "compartment": "c", "formula": "C20H21N7O7" },
{
"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"
}
我的代码应该从表
reactions
中提取代谢物
,其中存在列表L的ID。嘿,您提供的json文件不是正确的json。请提供正确的文件。另外,您希望实现的具体目标是什么?请在将来使用更好的变量名,这对所有相关人员都有好处。如果您发现自己在范围(某物)中对x执行:某物[x]
,那么您应该在某物:循环中对x使用。if语句中的括号不是必需的<代码>L
未定义。
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])