我正在尝试加载一个json数据文件,以便使用nltk框架对其进行分析,但得到一个AttributeError:'list'对象没有属性'keys'。我已经尝试删除最后的“json”部分,因为文档说明数据类型是由文件的扩展名自动检测的。也试图在开始时删除数据库无济于事。我有什么想法可能会磕磕绊绊吗?
import json
import nltk
database = nltk.data.load("data.json", "json")
答案 0 :(得分:1)
经过数小时的研究,如果最高顺序是列表而不是字典,则NLTK不接受json文件。为了访问数据,最上面的结构必须是带键的字典结构。
jsonfile = open('data.json')
jsonstr = jsonfile.read()
jdata = json.loads(jsonstr)[0]
这允许人们访问列表中包含字典的第一个元素,类似于列表中的每个其他元素。一种解决方案是分离列表的元素并一次加载一个dicts。我还怀疑在编码json时,sort_keys = True可能会使最上层的结构成为字典。