2015-04-17 3 views
0

У меня есть файл журнала в таком формате,синтаксического анализа данных из журнала в JSON файл

{ 
    "box1" : { 
    "item1" : "testValue1", 
    "item2" : "testValue2" 
    }, 
    "foods" : [ 
    { 
     "orange" : "per pound", 
     "price" : 2.99 
    }, 
    { 
     "rice" : "in bag", 
     "price" : 1.99 
     "extra-key" : "extra-Value", 
     "extra-key2" : "extra-Value2", 
    }, 
    { 
     "beer" : "in box", 
     "price" : 12.99 
     "extra-key3" : "extra-Value3" 
     "content" : None 
    } 
] 
} 

и я хочу, чтобы извлечь следующие значения в выходной файл в Python:

[ "orange" : "per pound", "rice" : "in bag","beer" : "in box" ] 

Может кто-шоу как это можно сделать?

ответ

1

Для чтения json-файлов вы можете использовать модуль Python - json. Он считывает файл и возвращает соответствующую структуру данных, хранящуюся в файле.

Поскольку у вас есть словарь, вы можете легко получить доступ к значениям, просто указав словарь.

import json 

with open('logFileName') as f: 
    data = json.load(f) 

# Foods is a list of dictionaries, so you have to access it like that 
print data['foods'][0]['orange'] 

Обратите внимание, что вы неправильно указали желаемый формат вывода, потому что вы смешиваете список и синтаксис словаря. Я предполагаю, что вы действительно хотели извлечь словарь из журнала.

Это проблема, если вы не знаете заранее, какой тип пищи будет в списке, потому что нелегко определить, какой ключ в словаре является пищей (например, rice), и что-то совершенно другое, например extra-key.

Для быстрого ознакомления с Python читайте The Python Tutorial.

Смежные вопросы