【发布时间】:2018-12-03 01:08:32
【问题描述】:
我想要这样的东西:
[
('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 数组。这似乎是一种非常规的格式?即为什么句子后面有逗号而不是:
无论如何它是 spacy 所需的格式。 我尝试创建一个字典,然后将 json.dumps 放入一个 json 对象中,这要容易得多,但需要的是一个数组。
我看过这篇文章:Python - Create array of json objects from for loops 并尝试建设性地进行迭代,但我只是得到一个无效的语法错误
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] 几乎相同的结果,除了在内部的附加 ()字典。我很确定这是我收到此错误的罪魁祸首:TypeError: 'int' object is not iterable。那么我将如何插入呢?如果我只是在它周围加上一个额外的 (),python 会解析它并将其删除。
已解决:只需添加一个额外的 []
谢谢
【问题讨论】:
-
错误是什么?
-
语法错误点在 : "entities" 之后
标签: python arrays json iteration