将数据存储在文件中并将文件解析为json

时间:2014-01-07 06:05:06

标签: python json

我想将数据存储在.json文件中,如使用python language-

    {object:
            {
              name: "abcd",
              id: "fwfwfwf"
            }
            {
              name: "efgh",
              id: "wderds"
            }
            ..
            .. and so on
    }

    {container:
            {
              name: "pros",
              id: "zxcdsef"
            }
            {
              name: "mnop",
              id: "waqsred"
            }
            ..
            .. and so on
    }

现在我想再次使用f.read()或类似方法读取文件中对象/容器的特定成员。\

如何使用python和JSON解析此文件?

先生,我想问一件事。假设我的data.json文件就像 -

    {
        "object": [
            {
                "name": "abcd",
                "id": "fwfwfwf"
            },
            {
                "name": "efgh",
                "id": "wderds"
            }
        ]
    }

    {
        "container": [
            {
                "name": "pqrs",
                "id": "fwfwfwf"
            },
            {
                "name": "mnop",
                "id": "wderds"
            }
        ]
    }

现在我想在此文件中添加一个容器,该容器将在容器下。 您能否告诉我如何使用f.write()

在文件中编写新容器

3 个答案:

答案 0 :(得分:2)

首先创建有效的json。您可以使用任何链接like

验证您的json
{
    "object": [
        {
            "name": "abcd",
            "id": "fwfwfwf"
        },
        {
            "name": "efgh",
            "id": "wderds"
        }
    ]
}

现在是python脚本

import json

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

您可以访问以下数据:

data["objects"][0]["id"]  # will return 'fwfwfwf'
data["objects"][1]["name"] #will return 'efgh'

答案 1 :(得分:0)

使用http://jsonlint.com/验证您的json。在json文件中,标识符有双引号。数字int / float不需要。 通常,json文件是文本格式的python字典。您可以使用json模块来解析json文件。

import json
myfile = open('yourfilename', 'r')
myjsondata_as_dict = json.load(myfile)

之后,如果json格式没有错误,myjsondata_as_dict会将你的json数据作为字典。

答案 2 :(得分:0)

这是将数据精简地转储到JSON中的语法。

with open('abc.json', 'wb') as outfile:
    json.dump(obj, outfile, indent = 4)

要从JSON文件加载,请使用

with open('abc.json') as infile:
    data = json.load(infile)

更多信息http://freepythontips.wordpress.com/2013/08/08/storing-and-loading-data-with-json/