簡體   English   中英

在Python中使用json.load時,JSON文件轉換為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM