Разбор JSON с помощью python

У меня проблема с этим. Мне нужно получить 2 элемента в JSON Items: "some_number" и "some_number_2" Элементы "sample1" и "sample2" в каждом запросе разные. Я новый человек в Python. Большое спасибо

"data":{
   "sample1":{
      "some_number":"8410000110275080",
      "some_number_2":"0070050001010011",
      "name":"0000405533003537",
      },
   "sample2":{
      "some_number":"8410000110275080",
      "some_number_2":"0070050001010011",
      "name":"0000405533003537",
      }

В моем коде я просто могу заработать «sample1» и «sample2». В следующем запросе эти значения различны.

Это недопустимый json. Есть ли обертка внешних брекетов data?

C.Nivs 20.03.2019 15:14

Вы можете использовать модуль bultin json. data = json.load(fd); [(d['some_number'], d['some_number_2']) for _,d in data['data'].items()] ? Не используйте один лайнер, хотя :)

han solo 20.03.2019 15:14

Как вы пытаетесь сохранить свои значения для some_number и some_number_2?

C.Nivs 20.03.2019 15:17
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
3
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам нужно загрузить Json в словарь:

with open("your file path", 'r') as f:
    data = json.load(f)

Затем, если вы хотите перебрать как ключи, так и значения словаря, сделайте следующее:

for key, value in data.items():
    print key, value

Затем вы можете вложить цикл for, чтобы получить желаемые пары key, value.

Лучший

Что ж, здесь есть на что обратить внимание. Ваш код НЕ будет работать с данными JSON, размещенными выше. Во-вторых, если мы считаем, что входные данные в правильном формате, то уверены ли вы, что этот ответ не является обманом?

mad_ 20.03.2019 15:36

В опубликованном выше Json есть ,, которые здесь не при чем, но этот код работает с хорошо отформатированным json. Тогда я просто даю подсказку, как решить проблему. Он/она лучше поймет, как манипулировать Json, если ему/ей придется думать о том, как получить значения.

Maxouille 20.03.2019 15:45

Предполагая, что ваш файл json выглядит так:

{"data":{
   "sample1":{
      "some_number":"8410000110275080",
      "some_number_2":"0070050001010011",
      "name":"0000405533003537",
      },
   "sample2":{
      "some_number":"8410000110275080",
      "some_number_2":"0070050001010011",
      "name":"0000405533003537",
      }
}

Вы можете разобрать его, используя что-то вроде модуля json:

import json

# open the file using with
with open('myfile.json') as fh:
    my_json = json.load(fh)

# Now my_json is a dictionary
# We can iterate over values of a dictionary
inner_dict = my_json['data']

some_number, some_number_2 = [], []

# Iterate over each value
for val in inner_dict.values():
    some_number.append(val['some_number'])
    some_number_2.append(val['some_number_2'])



Другие вопросы по теме