![](/img/trans.png)
[英]Not about to deserialize json kept as string in Python using json.load
[英]JSON file is converted to string while using json.load in Python
我有一個有效的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))
它將輸出顯示為類“ str”。 為什么不將其轉換為字典?
我已使用您提供的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版本中均適用。 再檢查一遍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.