首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中解析第二个对象的JSON

在python中解析第二个对象的JSON
EN

Stack Overflow用户
提问于 2016-07-05 12:39:20
回答 3查看 326关注 0票数 0

我有一个示例JSON,格式如下:

JSON文件:

代码语言:javascript
复制
{
   "Name": "ABC",
   "Phone":"123",
   "Address":[{"City":"City-1"},{"Country":"Country-1"}]
}

{
   "Name": "ABC-1",
   "Phone":"123-1",
   "Address":[{"City":"City-2"},{"Country":"Country-2"}]
}

是否有任何方法可以解析JSON并循环遍历文件并打印每个key-value对。

我使用的方法是通过使用

代码语言:javascript
复制
json_open = open(json_file)
json_data = json.load(json_open)
print(json_data[Name]) ##should give ABC
print(json_data[Name]) ##should give ABC-1 - unsure about the syntax and format

但是我目前只能打印第一个对象值--即name=ABC而不是name=ABC-1

EN

回答 3

Stack Overflow用户

发布于 2016-07-05 13:27:51

您的json文件中存在错误。我修改了json并编写了遍历其中每个元素的代码。

错误:

代码语言:javascript
复制
Error: Parse error on line 9:
... "Country-1" }]}{    "Name": "ABC-1",
-------------------^
Expecting 'EOF', '}', ',', ']', got '{'

sample.json

代码语言:javascript
复制
{
  "data": [
    {
      "Name": "ABC",
      "Phone": "123",
      "Address": [
        {
          "City": "City-1"
        },
        {
          "Country": "Country-1"
        }
      ]
    },
    {
      "Name": "ABC-1",
      "Phone": "123-1",
      "Address": [
        {
          "City": "City-2"
        },
        {
          "Country": "Country-2"
        }
      ]
    }
  ]
}

sample.py

代码语言:javascript
复制
import json

json_file='sample.json'
with open(json_file, 'r') as json_data:
    data = json.load(json_data)

jin=data['data']

for emp in jin:
      print ("Name :"+emp["Name"])
      print ("Phone :"+emp["Phone"])
      print ("City :"+emp["Address"][0]["City"])
      print ("Country :"+emp["Address"][1]["Country"])
票数 1
EN

Stack Overflow用户

发布于 2016-07-05 13:48:40

json文件中的每条记录都用',‘分隔。因此,您的文件应该如下所示:

代码语言:javascript
复制
[{
    "Name": "ABC",
    "Phone": "123",
    "Address": [{
        "City": "City-1"
    }, {
        "Country": "Country-1"
    }]
},

{
    "Name": "ABC-1",
    "Phone": "123-1",
    "Address": [{
        "City": "City-2"
    }, {
        "Country": "Country-2"
    }]
}
]

您可以读取文件并输出,如下所示:

代码语言:javascript
复制
import json

my_file='test.json'
with open(my_file, 'r') as  my_data:
    data = json.load(my_data)

print data

for elm in data:
    print elm['Phone']
    print elm['Name']
    print elm['Address'][0]['City']
    print elm['Address'][1]['Country']  
票数 0
EN

Stack Overflow用户

发布于 2016-07-05 13:58:31

首先这不是有效的json格式,

你可以检查here你的json格式

您应该使用此try.json文件

代码语言:javascript
复制
{
    "data":[{
        "Name": "ABC",
        "Phone":"123",
        "Address":[{"City":"City-1"},{"Country":"Country-1"}]
        }, {
        "Name": "ABC-1",
        "Phone":"123-1",
        "Address":[{"City":"City-2"},{"Country":"Country-2"}]
    }]
}

这是try.py

代码语言:javascript
复制
import json
json_open = open("try.json")
json_data = json.load(json_open)
for i in range(len(json_data['data'])):
    print(json_data['data'][i]["Name"])

注意: python代码是用python3编写的

输出是这样看行

代码语言:javascript
复制
ABC
ABC-1 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38195274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档