У меня есть несколько словарей (вывод json).Я хочу получить базовый элемент, который может быть списком строк или строк.В настоящее время я делаю это так: -
folder="shared/"
files=os.listdir('shared')
for f in files:
f=folder+f
print(f)
with open(f) as f:
data = json.load(f)
#data is a dict now with sub-keys
for key,value in data.items():
if value.keys():
print(value)
break
Это словарь ввода, который был прочитан кодом Python: -
{
"shortshirt": {
"ralphlauren": {
"classic": [
"That Ralph Lauren classic fit is a timeless look!",
"Nice choice. Can’t go wrong with Ralph Lauren"
]
}
},
"socks": {
"": {
"": ["Have to find the right socks to keep your feet cozy"]
}
}
}
И это вывод, который я получаю: -
{'ralphlauren': {'classic': ['That Ralph Lauren classic fit is a timeless look!', 'Nice choice. Can’t go wrong with Ralph Lauren']}}
{'': {'': ['Have to find the right socks to keep your feet cozy']}}
Но это то, что я хочу: -
keys=[["shortshirt","ralphlauren","classic"],["socks"]]
value=[['That Ralph Lauren classic fit is a timeless look!', 'Nice choice. Can’t go wrong with Ralph Lauren'], ['Have to find the right socks to keep your feet cozy']]
Но я не знаю, иметь ли 2 или 3 уровня вложенных циклов.Если у меня есть внутренний цикл и в действительности не было вложенного ключа, я получаю ошибку значения.Я хочу получить все вложенные ключи в отдельном списке и базовое значение или значения, как на самом низком уровне в другом списке, любая помощь в этом отношении будет высоко оценена.