Python3 dict_keys和dict_values数据类型

Python3 dict_keys和dict_values数据类型

这是我在取json格式里的key时遇到的小问题,所以分享给大家。

# json数据
a = {
	'passcode': 'shuai',
	 'table': 'ha', 
	 'message': 
	 	{
	 	'ID': 12, 
	 	'key2': "hei",
	 	 'one': 15
	 	 }
	 }

现在我要分别取json数据里的所有key和value,这里就要用到.keys().values()

j_keys = a.keys()
print( j_keys )
j_values = a.values()
print ( j_values )

打印出的结果为:

##  dict_keys(['passcode', 'table', 'message'])
##  dict_values(['shuai', 'ha', {'ID': 12, 'key2': "hei", 'one': 15}])

再在print里加入type查看类型:dict_keys dict_values
我之前敲的代码是需要遍历所有的键、所有的值,然后for循环来分别使用这些键和值
当时我的想法是在参数后面加索引,循环下标将数值全部遍历出来
测试发现dict_keys dict_values这俩数据类型没有下标,所以无法遍历
然后我就使用了笨方法:
print(",".join(str(i) for i in list(j_keys)))
输出结果为:

passcode,table,message

这是我期待的效果,但是代码过于繁琐,需要在for循环里转换类型,为了简化代码,我又试了试:

print(",".join(str(i) for i in j_keys))

不给j_keys做类型转换,照样也可以遍历?!?!
我暂时没搞明白这是为什么,但是也确实减少了一丢丢我的代码量
总结:dict_keys与dict_values数据类型,可以循环遍历出每个键每个值,但是不可以使用索引

你可能感兴趣的:(python3)