在Python的词典列表中使用for循环时键入Error

时间:2018-08-13 12:21:39

标签: python json list parsing dictionary

在解析json文件中的数据时,在Python 3.6上使用该结构时遇到错误:

for topic in data:
    cqas = [{'context':      paragraph['context'],
            'id':           qa['id'],
            'question':     qa['question'],
            'answer':       qa['answers'][0]['text'],
            'answer_start': qa['answers'][0]['answer_start'],
            'answer_end':   qa['answers'][0]['answer_start'] + \
                            len(qa['answers'][0]['text']) - 1,
            'topic':        topic['title'] }
            for paragraph in topic['paragraphs']
            for qa in paragraph['qas']]

如上所述,我在字典列表中找不到有关使用for循环的文档。我想学习它,因为使用该结构时还会收到一条错误消息:

enter image description here

数据集:https://raw.githubusercontent.com/YerevaNN/R-NET-in-Keras/master/data/dev-v1.1.json

1 个答案:

答案 0 :(得分:0)

代码中的/api/Foos$expand=man($expand=chu)部分抛出错误,因为len(qa['answers'][0]['text'])需要一个字符串。您可以通过在python解释器中输入len()来验证自己。检查您的数据,qa ['answers']数组中的'text'键是否在某处包含整数值。或者,如果您确实需要整数,则修改代码。

我从您提供的原始代码和数据中提取了一部分,并解析了无抛出错误。由于您提到您使用的是“相似”数据集,所以我假设您或其他人修改了内容...

(如果您提供原始数据您的数据集和代码会很有帮助)