Я пытаюсь добавить данные ниже в файл JSON ... это всего лишь пример, так как я все еще учусь делать это.
ITEM QTY ID DESCR LOCATION
item1 3 it111 Gold Rack11
item2 10 it222 Silver Rack22
item3 6 it333 Red Rack33
item4 1 it444 Blue Rack44
, например, ниже, я могу добавить значение класса и владельца, потому что он выводит только одну строку и одну строку.Но вывод деталей ключа состоит из нескольких строк ключа и значения, и я не уверен, как читать его построчно и анализировать в json.
{
"product": [
{
"class":"food",
"owner":"user1",
}
]
}
Ожидается окончательный вывод, как показано ниже
{
"product": [
{
"class":"food",
"owner":"user1",
"details": [
{
"item":"item1",
"qty":"3",
"id":"it111",
"desc":"Gold",
"loct":"Rack11"
},
{
"item":"item2",
"qty":"10",
"id":"it222",
"desc":"Silver",
"loct":"Rack22"
},
{
"item":"item3",
"qty":"6",
"id":"it333",
"desc":"Red",
"loct":"Rack33"
},
{
"item":"item4",
"qty":"1",
"id":"it444",
"desc":"Blue",
"loct":"Rack44"
}
]
}
]
}
Мой список, как показано ниже
product = "class","owner","details"
Проблема в том, что я не знаю, как получить подробный вывод в «детали» и сформировать его во вложенную структуру json.Ценю вашу помощь.Спасибо
Использование CSV-ридера является решением, если вводимый текст разделен табуляцией.Это работает ... как указано ниже.Основываясь на информации ... Я пытаюсь применить то же самое с другим набором текста ввода, похожего, и это дает мне ошибку
ValueError: need more than 4 values to unpack
образец набора текста ввода, как показано ниже
Local Interface Parent Interface Chassis Id Port info System Name
xe-3/0/4.0 ae31.0 b0:c6:9a:63:80:40 xe-0/0/0.0 host.xsrt1.net
xe-3/0/5.0 ae31.0 b0:c6:9a:63:80:40 xe-0/0/1.0 host.xsrt1.net
xe-3/0/6.0 ae31.0 b0:c6:9a:63:80:40 xe-0/0/2.0 host.xsrt1.net
xe-3/0/7.0 ae31.0 b0:c6:9a:63:80:40 xe-0/0/3.0 host.xsrt1.net
xe-3/0/0.0 ae31.0 b0:c6:9a:63:80:40 xe-0/1/0.0 host.xsrt1.net
xe-3/0/1.0 ae31.0 b0:c6:9a:63:80:40 xe-0/1/1.0 host.xsrt1.net
xe-3/0/2.0 ae31.0 b0:c6:9a:63:80:40 xe-0/1/2.0 host.xsrt1.net
xe-3/0/3.0 ae31.0 b0:c6:9a:63:80:40 xe-0/1/3.0 host.xsrt1.net
Я не уверен, почему ... но, возможно, это не совсем формат табуляции с разделителями ... если это так, как преобразовать его в правильный формат с разделителями табуляции?Спасибо
Update1 : для указанного выше ввода я разбил на строки с тестовым кодом ниже
with open('lldp.csv', 'r', newline='') as csv_file:
reader = csv.reader(line.replace(' ', ',') for line in csv_file)
my_list = list(reader)
pprint(my_list)
Вывод, как показано ниже
[['Local Interface',' Parent Interface',' Chassis Id','','','','','Port
info','','System Name'],['xe-3/0/4.0','','','','ae31.0','','','','','','
b0:c6:9a:63:80:40',' xe-0/0/0.0',' host.jnpr.net'],['xe-
3/0/5.0','','','','ae31.0','','','','','',' b0:c6:9a:63:80:40',' xe-
0/0/1.0',' host.jnpr.net'],['xe-3/0/6.0','','','','ae31.0','','','','','','
b0:c6:9a:63:80:40',' xe-0/0/2.0',' host.jnpr.net'],['xe-
3/0/7.0','','','','ae31.0','','','','','',' b0:c6:9a:63:80:40',' xe-
0/0/3.0',' host.jnpr.net'],['xe-3/0/0.0','','','','ae31.0','','','','','','
b0:c6:9a:63:80:40',' xe-0/1/0.0',' host.jnpr.net'],['xe-
3/0/1.0','','','','ae31.0','','','','','',' b0:c6:9a:63:80:40',' xe-
0/1/1.0',' host.jnpr.net'],['xe-3/0/2.0','','','','ae31.0','','','','','','
b0:c6:9a:63:80:40',' xe-0/1/2.0',' host.jnpr.net'],['xe-
3/0/3.0','','','','ae31.0','','','','','',' b0:c6:9a:63:80:40',' xe-
0/1/3.0',' host.jnpr.net']]
Сверху как удалить ненужные '' и как начать читать строку со 2-й строки (1-я строка - только заголовок).Из списка я хочу разобрать его на json, как указано выше.
Я открою новый вопрос для моего вопроса выше и сосредоточусь на выводе выше Спасибо