У меня есть входной файл следующего формата
CC -----------------------------------------------------------------------
CC
CC hgfsdh kjhsdt kjshdk
CC
CC -----------------------------------------------------------------------
CC Release of 18-Sep-2019
CC -----------------------------------------------------------------------
CC
CC Alex
CC -----------------------------------------------------------------------
CC Copyrighted vvvncbm License
CC -----------------------------------------------------------------------
//
ID 1.1
ED text1
AN text2.
CA text3
CF text4.
CC -!- Some members
CC also on .
CC -!- May be
CC -!- Re
PR PRTSF; C000AS61;
DQ Q6, AZW2_DANRE; Q7, AZW2_DANRE; Q97, AZW2_DONT;
DQ Q8, AZW2_DONT; Q9, AZW2_AZW2_DONT; Q10, AZW2_CAFT;
//
ID 1.2
ED text1
AN text2.
CA text3
CF text4.
CC -!- Some members
CC also on .
CC -!- May be
CC second line
PR PRTSF; DOC00;
DQ Q6, AZW2_DANRE; Q7, AZW2_DANRE; Q97, AZW2_DONT;
DQ Q8, AZW2_DONT; Q9, AZW2_AZW2_DONT; Q10, AZW2_CAFT;
DQ Q15, AZW2_DANRE; Q43, AZW2_DANRE; Q049, AZW2_DONT;
//
Я хотел бы сгруппировать данные в этом текстовом файле и сохранить их в формате json
Я пробовал следующее,
import os
import json
from pprint import pprint
def text_to_json(f_input):
location_data = []
if os.path.exists(f_input):
with open(f_input, 'r') as f:
for line in f.readlines()[12:]:
if line.strip() != '//' and line.strip() != '//' and line.strip():
print(line[:-1])
pass
# return json.dumps(data)
if __name__ == '__main__':
f_input = 'input.txt'
text_to_json(f_input)
Я пропустил первые несколько строк с комментариями.if line.strip() != 'DELIMITER' and line.strip() != 'DELIMITER' and line.strip():
, разделитель //
.Однако я не уверен, как использовать \\
и группировать данные, соответствующие каждому идентификатору.
Я хотел бы сгруппировать данные, используя разделитель, и сохранить данные каждого идентификатора в формате json.
{
'1.1' :
{'DQ': {'Q6': AZW2_DANRE, 'Q7': 'AZW2_DANRE', 'Q97': 'AZW2_DONT'
'Q8': 'AZW2_DONT', 'Q9': 'AZW2_AZW2_DONT'; 'Q10': 'AZW2_CAFT'},
'ED': 'text1',
'AN': 'text2.',
'CA': 'text3',
'CF': 'text4.',
'PR': 'PRTSF; C000AS61;',
'CC': ['Some members also on .', 'May be', 'Re']
}
'1.2' :
{'DQ': {'Q6': AZW2_DANRE, 'Q7': 'AZW2_DANRE', 'Q97': 'AZW2_DONT'
'Q8': 'AZW2_DONT', 'Q9': 'AZW2_AZW2_DONT'; 'Q10': 'AZW2_CAFT',
'Q15': 'AZW2_DANRE', 'Q43': 'AZW2_DANRE', 'Q049': 'AZW2_DONT'},
'ED': 'text1',
'AN': 'text2.',
'CA': 'text3',
'CF': 'text4.',
'PR': 'PRTSF; DOC00;',
'CC': ['Some members also on .', 'May be second line']
}
}
Я мог бы создать вышеуказанный json, сохраняя его на основе номеров строк.Однако номер строки каждого набора данных постоянно меняется.Например, данные, хранящиеся в DQ
, имеют 2 строки в первом наборе данных и 3 в секунду.Любые предложения о том, как поступить?