我有一个有效的JSON文件但是当我使用json.load()时,它会被转换为字符串而不是Python字典。
我的JSON字符串:
{
"colors": [
{
"color": "black",
"category": "hue",
"type": "primary",
"code": {
"rgba": [255,255,255,1],
"hex": "#000"
}
},
{
"color": "white",
"category": "value",
"code": {
"rgba": [0,0,0,1],
"hex": "#FFF"
}
},
{
"color": "red",
"category": "hue",
"type": "primary",
"code": {
"rgba": [255,0,0,1],
"hex": "#FF0"
}
},
{
"color": "blue",
"category": "hue",
"type": "primary",
"code": {
"rgba": [0,0,255,1],
"hex": "#00F"
}
},
{
"color": "yellow",
"category": "hue",
"type": "primary",
"code": {
"rgba": [255,255,0,1],
"hex": "#FF0"
}
},
{
"color": "green",
"category": "hue",
"type": "secondary",
"code": {
"rgba": [0,255,0,1],
"hex": "#0F0"
}
}
]
}
它被命名为color.json
我的Python代码是:
import json
with open("color.json") as f:
data=json.load(f)
print(type(data))
它显示输出为class' str'。为什么它没有被转换成字典?
答案 0 :(得分:0)
我已使用您提供的json文件扩展您的代码
import json
with open("color.json") as f:
data=json.load(f)
print(type(data))
listofkeys=[keys for keys in data.keys()]
print(listofkeys)
color_keys=[keys2 for keys2 in data["colors"][0].keys()]
print(color_keys)
输出如下
<class 'dict'>
['colors']
['category', 'color', 'code', 'type']
首先,它只返回dict
类型。而且我们打印出的只有一个键colors
。
第二件事就是这个颜色键是将字典列表作为其值,并在我们的代码中打印出来。 category color code type
是四个词典
你可以进一步探索这些词典。
并且上面提到的代码在python2和3版本中都有效。再次检查。