构造JSON数组

2024-09-29 20:21:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要这样的东西:

[
    ('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、 为什么句子后面有逗号而不是:

不管怎样,这是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]几乎相同,只是dict内部有一个额外的()值。我很确定是它导致了这个错误:TypeError:'int'object is not iterable。那我怎么插进去呢?如果我只是在它周围加上一个()的话,python就会解析它并将其删除。你知道吗

已解决:只需多放一个[]

谢谢


Tags: 文件ofinjsonfordata格式数组
1条回答
网友
1楼 · 发布于 2024-09-29 20:21:47

实际上,您需要的是一个元组列表,其中str作为第一个元素,dict作为第二个元素。简单地放更多的括号和移动你的咖喱括号。你知道吗

train_data = [(mention, {"entities": (f.span()[0], f.span()[1], 'PLTF')}) for mention, span in zip(mentions, spans)]

相关问题 更多 >

    热门问题