TypeError: get_properties() отсутствует 1 обязательный позиционный аргумент: 'идентификатор'

Я пытался выяснить эту ошибку на python с помощью PubChemPy, но я застрял. Я пытаюсь ввести список химических веществ и собрать информацию о примерно 200 химических веществах. Это код, который я использую

      for i in List_of_Chemicals['Chemical name']:
    prop = pcp.get_properties(['CanonicalSMILES'])

любая помощь будет оценена

2 ответа

Похоже, вы передаете список в get_properties()но он не принимает список, а может принимать несколько разных параметров. Вот выдержка из текущей документации:

Функция get_properties позволяет извлекать определенные свойства без необходимости иметь дело со всеми составными записями. Это особенно полезно для одновременного получения свойств большого количества соединений:

      p = pcp.get_properties('IsomericSMILES', 'CC', 'smiles', searchtype='superstructure')

https://pubchempy.readthedocs.io/en/latest/guide/properties.html

В вашем вопросе не хватает полезных деталей, но я полагаю, вам действительно нужно что-то вроде:

      for i in List_of_Chemicals['Chemical name']:
    prop = pcp.get_properties(i)

2-е редактирование: этот код идет от списка имен до получения cid, а затем свойства:

      import pubchempy as pcp

# list of chemical names
List_of_Chemicals = ['benzene', 'toluene', '2-nonenal']

for chemical_name in List_of_Chemicals:

    cid=pcp.get_cids(chemical_name)
    prop = pcp.get_properties('CanonicalSMILES', cid)
    print (chemical_name + ' ' + str(prop))

get_properties требует cid в качестве обязательного аргумента. Вы не можете передавать химические названия. Итак, вам нужен промежуточный шаг, чтобы получить список идентификаторов, соответствующих именам с pcp.get_cids, что я сделал в приведенном выше коде.

Другие вопросы по тегам