JSON-файл преобразуется в строку при использовании json.load в Python - PullRequest
0 голосов
/ 10 июня 2018

У меня есть допустимый файл 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'.почему он не конвертируется в словарь?

1 Ответ

0 голосов
/ 10 июня 2018

Я расширил ваш код, как показано ниже, с помощью предоставленного вами файла 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.Проверьте еще раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...