2014-01-07 26 views
0

我想在上传.json文件数据存储为使用python语种存储在文件中的数据和解析该文件作为JSON

{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" 
      } 
     ] 
    } 

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

+2

标识符实际上是在引号,是不是?你读过['json'模块](http://docs.python.org/2/library/json.html)文档了吗?这个模块很容易使用... –

+0

我同意@Tim ...这对我来说看起来不像是有效的json。而且,正如他指出的那样,如果该文件实际上是有效的json,则内置json模块应该会帮助您。 – mgilson

+0

我对json并不熟悉。我刚才在文中展示了我的理解。请尽可能帮忙。 – user2069033

回答

0

使用http://jsonlint.com/来验证你的json文件中写入新的容器。在json文件中,标识符有双引号。数字整数/浮点数不需要。 一般来说,一个json文件是一个文本格式的python字典。您可以使用json模块来解析json文件。

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

此后myjsondata_as_dict将您的json数据作为字典,前提是json格式没有错误。

+0

非常感谢:) – user2069033

2

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

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

现在python脚本

import json 

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

验证您的JSON和您可以像访问数据:

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

先生,我根据您的建议修改了一些问题。请帮我解决这个问题。 – user2069033

+0

根据我的理解,您应该先阅读从文件加载JSON,然后在数据[“容器”中附加新条目] bcz data [“container”]是一个dictonary列表。 – Aks