TypeError: строковые индексы должны быть целыми числами Python 2 - PullRequest
0 голосов
/ 24 ноября 2018

Я использую Python 2.7 и получаю сообщение об ошибке:

печать «Идентификатор статьи:», бумага ['MedlineCitation'] ['PMID']

ошибка: TypeError

Идентификатор статьи: обратная связь (последний вызов был последним): файл "F: /Practicals/Pubmed/pubmed-master/pubmed-master/scrap_pubmed.py", строка 44, в печати'Article ID:', paper ['MedlineCitation'] ['PMID'] TypeError: строковые индексы должны быть целыми числами

if __name__ == '__main__':
    print "Enter keyword to search for: "
    keyword = raw_input()
    print "Enter number # of articles to fetch (number): "
    number_of_articles = raw_input()
    results = search(keyword, number_of_articles)
    id_list = results['IdList']
    papers = fetch_details(id_list)
    filename = 'pubmed.txt'
    target = open(filename, 'w')

    for i, paper in enumerate(papers):
        number_of_authors = 0
        print 'Article ID: ', paper['MedlineCitation']['PMID']
        target.write('Article ID: ' + paper['MedlineCitation']['PMID'] + '\n')

        print 'ISSN No: ', paper['MedlineCitation']['Article']['Journal']['ISSN']
        target.write('ISSN No: ' + paper['MedlineCitation'][
                     'Article']['Journal']['ISSN'] + '\n')

1 Ответ

0 голосов
/ 27 ноября 2018

Это потому, что вы делаете это неправильно.

Вы должны получить доступ к объекту словаря, указав в качестве ключа el. ​​

Например:

  for i, paper in enumerate(papers):
    print papers[paper][0]['MedlineCitation']['PMID']
...