Python 构造JSON数组
我想要这样的东西:Python 构造JSON数组,python,arrays,json,iteration,Python,Arrays,Json,Iteration,我想要这样的东西: [ ('Urbandale paid the Regional Municipality of Ottawa-Carleton "redevelopment" charges', {'entities': [(0, 9, 'PLTF')]}), ('Urbandale carries on business as a land developer.', {'entities': [(0, 9, 'PLTF')]}) ] 我可以将其
[
('Urbandale paid the Regional Municipality of Ottawa-Carleton "redevelopment" charges',
{'entities': [(0, 9, 'PLTF')]}),
('Urbandale carries on business as a land developer.',
{'entities': [(0, 9, 'PLTF')]})
]
我可以将其设置为变量并使其工作,但现在我尝试自动构建JSON数组。这一个似乎是在一个非传统的格式?i、 e.为什么句子后面有逗号而不是:
无论如何,这是spacy所要求的格式。
我曾尝试创建一个字典,然后将json.dump放入一个json对象,这要简单得多,但需要的是一个数组
我看过这篇文章:并尝试过建设性地迭代,但我只是得到了一个无效的语法错误
spans = []
for mention in mentions:
mention = str(mention)
for f in re.finditer(subj, mention):
spans.append(f.span())
train_data = [{mention, "entities": (f.span()[0], f.span()[1], 'PLTF')} for mention, span in zip(mentions, spans)]
编辑:使用json.load(),TEST_DATA[0][1](我想要的结构)产生与TRAIN_DATA[0][1]几乎相同的结果,除了在dict内部有额外的()之外。我很确定这是我得到这个错误的罪魁祸首:TypeError:'int'对象不可iterable。那么我该如何插入它呢?如果我只是在它周围加上一个额外的(),python就会解析它并将其删除
已解决:只需多放一个[]
谢谢实际上,您需要的是一个str元组列表作为第一个元素,dict作为第二个元素。只需加上更多的括号,并移动你的咖喱括号
train_data = [(mention, {"entities": (f.span()[0], f.span()[1], 'PLTF')}) for mention, span in zip(mentions, spans)]
什么是错误?syntaxerror指向:在“entities”确定后,我停止获取语法错误,但仍然得到此错误
“str”对象不支持项分配。我认为主要的问题是数组或至少部分数组被读取为字符串。这部分(f.span()[0],f.span()[1],“PLTF”)是什么??我只得到[0,9,“PLTF”],里面没有括号。还有一堆应该有()的地方有一个[]。我不确定是否可以在不破坏编码编辑的情况下简单地替换它们:使用json.load(),TEST_DATA[0][1](我想要的结构)产生与TRAIN_DATA[0][1]几乎相同的结果,除了额外的()在dict的内部。当我得到这个错误时,我很确定这是罪魁祸首:TypeError:'int'对象是不可编辑的
。那么我该如何插入它呢?如果我只是在它周围加上一个额外的(),python就会解析它并将其删除