繁体   English   中英

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

[英]storing data in a file and parsing the file as json

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

    {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()在文件中写新容器

首先创建有效的json。 你可以使用任何链接验证您的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'

使用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数据作为字典。

这是将数据精简地转储到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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM