将数据从日志解析为json文件

时间:2015-04-17 06:25:44

标签: python 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 个答案:

答案 0 :(得分: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