2017-01-16 219 views
0

我是在JSON是一个新手, 我想从我的JSON数据 这里得到的只是“标签”是我的JSON数据,我使用json.dumps把它变成JSON格式获取标签名称

a = json.dumps({"Name": "Robert", 
    "Date" : "January 17th, 2017", 
    "Address" : "Jakarta"}) 

我想只打印我的JSON数据的标签,有没有可能的方法来做到这一点? 我想要的结果是

Name 
Date 
Address 
+2

一旦这是JSON,这变得困难。你为什么不使用Python数据结构? JSON在这里没有任何意义。 –

回答

1

您必须json转换为dict然后labels是一样的keys

import json 
a = json.dumps({"Name": "Robert", 
    "Date" : "January 17th, 2017", 
    "Address" : "Jakarta"}) 
for key in json.loads(a): 
    print(key) 

输出:

Name 
Date 
Address 

可选

如果您要访问的每个项目的值

import json 
a = json.dumps({"Name": "Robert", 
    "Date" : "January 17th, 2017", 
    "Address" : "Jakarta"}) 
d = json.loads(a) 
for key in d: 
    print("key: {}, value: {}".format(key, d[key])) 

Python2

for key, value in json.loads(a).iteritems(): 
    print("key: {}, value: {}".format(key, value)) 

Python3

for key, value in json.loads(a).items(): 
    print("key: {}, value: {}".format(key, value)) 

输出:由

key: Name, value: Robert 
key: Date, value: January 17th, 2017 
key: Address, value: Jakarta 
+0

哈哈,你发布的答案,字面上,当我打字它。 :D –

+0

:P解决方案非常简单:V – eyllanesc

+0

感谢您的回答,并且我得到了结果日期,名称和地址最后,为什么会发生?它应该像你所说的 –

0

假设:

  1. 我假设你正在使用python3.x

如下你可以这样做:

import json 
a = json.dumps({"Name": "Robert", "Date" : "January 17th, 2017", "Address" : "Jakarta"}) 
a_dict = json.loads(a) 
for key in a_dict.keys(): 
    print (key) 
0

我认为你需要使用负载创建一个JSON对象。所以在Python3中:

import json 

a = json.loads('{"Name":"Robert","Date":"January 17th, 2017","Address":"Jakarta"}') 

for key, value in a.items() : 
    print (key) 
+1

'loads' **不会**创建​​JSON“对象”。它将* JSON格式的字符串反序列化为* python对象* –

+0

我的意思是从字符串 –

+0

得到一组字符串,结果是Date,Name和Address,它为什么会发生? –