#python #python-3.x
#python #python-3.x
Вопрос:
Я получаю TypeError при попытке напечатать значение из файла json с использованием python.
Я пытаюсь извлечь один элемент из хобби в файле json ниже
{"name": "Jason",
"hobbies": ["music", "programming", "games"],
"job": "Software Developer"}
Используя следующий код
import json
with open('input.json', 'r') as input:
obj = json.load(input)
print('Hello, ' obj['hobbies'])
Я получаю следующую ошибку, не уверен, как извлечь из списка
Ошибка типа: может только объединить str (не «список») в str
буду признателен за любую помощь
Комментарии:
1.
obj['hobbies']
это список, который вы пытаетесь объединить с str. «Я пытаюсь извлечь один элемент из хобби» является расплывчатым. Какой элемент?2. Какое хобби вы ищете? В настоящее время вы пытаетесь объединить музыку, программирование и игры в строку, которая не разрешена. Для этого вам нужно проиндексировать этот объект в определенном элементе
3. Привет, Остин, я пытаюсь восстановить музыку
4. Итак
obj['hobbies'][0]
, тогда?5. большое вам спасибо за вашу помощь
Ответ №1:
это сработает:
import json
with open('input.json', 'r') as input:
obj = json.load(input)
#make it a string
print('Hello, ' str(obj['hobbies']))
что вам нужно сделать, так это преобразовать его в строку.
это то, что делает str
это для одного элемента:
import json
with open('input.json', 'r') as input:
obj = json.load(input)
#make it a string the item is the first one
print('Hello, ' str(obj['hobbies'][0]))
Комментарии:
1. Приветствую Matthijs990, который отлично сработал, какой код, если я просто хочу показать одно из увлечений, пожалуйста?
2. что-то вроде этого выполнит эту работу
Ответ №2:
Ответ соответствует измененному вопросу в соответствии с комментариями. Вы должны это изменить:
import json
with open('input.json', 'r') as input:
obj = json.load(input)
print('Hello,', obj['hobbies'][0])
Использование запятой приведет к автоматическому преобразованию объекта в строку, или, как сказал Matthijs990, сначала просто преобразуйте объект в строку, однако это менее pythonyc
print('Hello, ' str(obj['hobbies'][0]))
Комментарии:
1. Большое вам спасибо за вашу помощь
2. На этом веб-сайте принято повышать рейтинг решений, которые помогут вам, а затем отмечать одно из них как то, которое решило проблему, как «принятое решение»