Разобрать файл json с помощью ironpython 2.5

Я использую IronPython 2.5 (внутри TIBCO Spotfire) и хотел бы проанализировать файл json.

Библиотека json недоступна в этой версии IronPython. Simplejson тоже не работает. Есть ли другая библиотека, которую я могу использовать для этого? Это может быть .Net или Python, не имеет значения.

Заранее спасибо!


person roca323    schedule 27.10.2014    source источник


Ответы (3)


Я также сделал это с 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
person TarasB    schedule 29.01.2015

Одним из распространенных вариантов JSON в .NET является Json.NET. Я успешно использовал его в IronPython, и в зависимости от вашего варианта использования вы сможете десериализовать его в объектную модель или просто загрузить JObjects и использовать LINQ для запроса необходимых данных. LINQ, вероятно, не будет работать плавно, поскольку вы не сможете (правильно) clr.ImportExtensions в IronPython до версии 2.7.

Также просмотрите предыдущий вопрос.

person Simon Opelt    schedule 27.10.2014

Я понял...

преобразовать строку json в словарь:

jsonstring = open('myfile.json').read()
data = eval(jsonstring)
person roca323    schedule 27.10.2014
comment
Не работает, если ваш файл json содержит логические значения, т.е. true/false - person balki; 28.10.2014