TypeError:字符串索引必须是整数 Python 2
Posted
技术标签:
【中文标题】TypeError:字符串索引必须是整数 Python 2【英文标题】:TypeError: string indices must be integers Python 2 【发布时间】:2019-04-26 15:09:04 【问题描述】:我正在使用 python 2.7 并在
处遇到错误print 'Article ID: ', paper['MedlineCitation']['PMID']
错误是类型错误
文章 ID: 回溯(最近一次通话最后): 文件“F:/Practicals/Pubmed/pubmed-master/pubmed-master/scrap_pubmed.py”,第 44 行,在 print '文章 ID:',论文 ['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')
【问题讨论】:
变量文件是字符串对象! :D 【参考方案1】:那是因为你循环错了。
您必须通过将 el 作为键来访问字典对象。
像这样:
for i, paper in enumerate(papers):
print papers[paper][0]['MedlineCitation']['PMID']
【讨论】:
谢谢兄弟。我现在有另一个问题。它只给我一条记录,如果我想要多条记录,它会给我 IndexError: list index out of range 那是因为该列表没有您尝试访问的那么多记录。以上是关于TypeError:字符串索引必须是整数 Python 2的主要内容,如果未能解决你的问题,请参考以下文章
Python:TypeError:字符串索引必须是整数[关闭]
为啥在尝试从 api 获取数据时出现此错误“TypeError:字符串索引必须是整数”?