2

我正在使用 IronPython 2.5(在 TIBCO Spotfire 内)并想解析一个 json 文件。

json 库在此版本的 IronPython 中不可用。simplejson 也不起作用。我可以使用另一个库吗?它可以是 .Net 或 Python,没关系。

提前致谢!

4

3 回答 3

7

我也用JavaScriptSerializer. 如下:

peopleJson = '''[
    {"name":"Jon", "age": "29", canSing:false, favColors:["red", "white"]},
    {"name":"Lilly", "age": "55", "canSing": true}
]'''
#convert json to string
import clr
clr.AddReference('System.Web.Extensions')
from System.Web.Script.Serialization import JavaScriptSerializer
people = JavaScriptSerializer().DeserializeObject(peopleJson)

for person in people:
    # each line is a dictionary
    print person['name'] + ' ' + person['age']

输出是:

Jon 29
Lilly 55
于 2015-01-29T10:00:20.737 回答
0

.NET 中 JSON 的常见选择之一是Json.NET。我已从 IronPython 成功使用它,根据您的用例,您应该能够反序列化为对象模型或仅加载 JObjects并使用 LINQ 查询您需要的数据。LINQ 可能无法无缝工作,因为您将无法(正确地)clr.ImportExtensions在 IronPython 2.7 之前的版本中使用。

也请看这个先前的问题

于 2014-10-27T16:36:28.580 回答
-1

我想到了...

将 json 字符串转换为字典:

jsonstring = open('myfile.json').read()
data = eval(jsonstring)
于 2014-10-27T18:10:30.237 回答