【问题标题】:Convert json into spacy format将json转换为spacy格式
【发布时间】:2019-08-06 18:10:50
【问题描述】:

我是 Python 新手,请帮助我如何将 json 值作为参数传递,而不是从文件名加载。请查看以下代码以供参考..

import json

filename = input("Enter your train data filename : ")

print(filename)


with open(filename) as train_data:

    train = json.load(train_data)

TRAIN_DATA = []
for data in train:

    ents = [tuple(entity) for entity in data['entities']]

    TRAIN_DATA.append((data['content'],{'entities':ents}))


with open('{}'.format(filename.replace('json','txt')),'w') as write:

    write.write(str(TRAIN_DATA))

在上面的代码中从文件加载json值,而不是文件我想传递json值并加载......

例如:

train_data=[{"content":"what is the price of polo?","entities":[[21,25,"PrdName"]]}

with open(filename) as train_data:

    train = json.load(train_data)

谢谢,

【问题讨论】:

  • “将 json 值作为参数传递”是什么意思? Python 没有“JSON 值”,它有字典、列表、字符串、整数和浮点数,因此当您从文件或字符串加载 JSON 时,您会得到包含此类值或类似内容的字典。

标签: python python-3.x spacy


【解决方案1】:

“json 值”没有任何意义。 Json 是一种文本格式,而不是数据类型,json.loads() 所做的是将 json 文本转换为 python 对象 - 字典、列表等 - 根据 json 语法以及 Python 中有意义的确切类型(json 对象-> 字典,json 数组 -> 列表等)。您可以在 Python shell 中自行检查:

>>> import json
>>> jsonstr = '{"foo":"bar", "baaz":[1, 2, 3]}'
>>> json_data = json.loads(jsonstr)
>>> json_data
{'foo': 'bar', 'baaz': [1, 2, 3]}
>>> type(json_data)
<class 'dict'>

IOW,如果你已经有了正确的 Python 字典,那么你就无事可做了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2021-10-02
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多