使用正确的密钥以正确的顺序检索密钥,值对

时间:2019-02-12 18:51:26

标签: python json dictionary

我正在看W3学校的示例,将JSON转换为Python

https://www.w3schools.com/python/python_json.asp

import json

# some JSON:
x =  '{ "name":"John", "age":30, "city":"New York"}'

# parse x:
y = json.loads(x)

# the result is a Python dictionary:
print(y["age"])

我正在尝试使用键,值对进行打印

import json

def emp_data(**args):
    emp= '{ "name":"John", "age":30, "city":"New York"}'

    # parse x:
    jsonObject = json.loads(emp)


    # the result is a Python dictionary:
    for key in jsonObject:
        for value in jsonObject['name'], ['city'],['age']:
            print()
    print(key, jsonObject['name'], jsonObject['city'],jsonObject['age'])

emp_data()

结果不一致,不能打印所有键。

age John New York 30

我尝试将无法解决问题的问题分开

print(key, jsonObject['name'])  

print(key, jsonObject['city'])  

print(key, jsonObject['age'])   

我尝试了**args,还有什么可以尝试的吗?

1 个答案:

答案 0 :(得分:0)

我不确定您要实现什么,但是我的理解是您正在尝试将key-value对打印在一起。正如@jonrsharpe所提到的,字典不是有序结构,问题在于循环。

如果要打印key-value对,可以执行以下操作:

import json

def emp_data(**args):
   emp= '{ "name":"John", "age":30, "city":"New York"}'

   # parse x:
   jsonObject = json.loads(emp)

   # the result is a Python dictionary:
   # As @Iluvatar mentioned, you can iterate over both key and value 

   for key,val in jsonObject.items():
      print key + ',' + str(jsonObject[key])

结果将是(按某种顺序):

city, New York
age, 30
name, John

再次查看字典可能是个好主意。我认为您在了解中缺少一些东西。