首页 > 解决方案 > 从 JSON 文件读入字典

问题描述

我正在尝试使用新的MLGazetteer 作为 Swift CreateML 的一部分。它MLTagger通过标记一些单词来支持流程。

WWDC 视频和文档显示如下代码:

let entities = ["vehicle": ["car", "bike", "plane"],
            "food": ["tomato", "flour", "sugar", "salt", "potato"]]
let gazetteer = try MLGazetteer(dictionary: entities)
let newModel = "test"
try gazetteer.write(to: URL(fileURLWithPath: ".../Desktop/" + newModel + ".mlmodel"))

这有效,属性“实体”被写成字典并由MLGazetteer. 我的问题是我想要一个更大的地名词典。我想从与“实体”格式相同的文件中读取数据。我怎样才能以相同的格式阅读它?

我试过类似的东西:

newURL = Bundle.main.url(forResource: "gazetteer data", withExtension: "json")!
let newData = try Data(contentsOf: newURL)
let newEntities = Dictionary(from: newData)

但这在 Dictionary(...) 处失败,原因如下:“无法使用类型为 '(from: Data)' 的参数列表调用类型 'Dictionary<_, _>' 的初始化程序”

有没有一种简单的方法可以从文件中读取到Dictionary正在尝试的内容?

标签: jsonswift

解决方案


推荐阅读