将txt python文件解析为字典列表

时间:2018-05-28 16:37:19

标签: python regex parsing

我有一个带有一些数据的txt文件,我需要在一个字典列表中解析它。它有阻止女巫从startpayment开始并以endpayment结束。我需要在dict中解析该块,并将该dict放入列表中。有数据的例子(俄语):

startpayment
СекцияДокумент=Платежное поручение
Номер=48077
Дата=19.04.2018
Сумма=53000
ДатаСписано=
Плательщик=ИНН 4823006703 ПАО "Новолипецкий металлургический комбинат"
ПлательщикИНН=4823006703
ПлательщикКПП=997550001
ПлательщикСчет=40702810300000000309
Плательщик1=ПАО "Новолипецкий металлургический комбинат"
ПлательщикРасчСчет=40702810300000000309
ПлательщикБанк1=ПАО "ЛИПЕЦККОМБАНК"
ПлательщикБанк2=г. ЛИПЕЦК
ПлательщикБИК=044206704
ПлательщикКорсчет=30101810700000000704
ДатаПоступило=19.04.2018
Получатель=ИНН 4826050620 ООО "ПРОМНОВАЦИЯ"
ПолучательИНН=4826050620
ПолучательКПП=482601001
ПолучательСчет=40702810352100000099
Получатель1=ООО "ПРОМНОВАЦИЯ"
ПолучательРасчСчет=40702810352100000099
ПолучательБанк1=ПАО АКБ "АВАНГАРД"
ПолучательБанк2=г. МОСКВА
ПолучательБИК=044525201
ПолучательКорсчет=30101810000000000201
ВидОплаты=01
СрокПлатежа=19.04.2018
Очередность=5
НазначениеПлатежа=Оплата за Закупка оборудования и запасных частей сч./ф. N 6 от 20.03.18, по дог. 100000000000176498 от 29.11.17. Без налога (НДС)
КонецДокумента
endpayment
startpayment
СекцияДокумент=Платежное поручение
Номер=222
Дата=23.04.2018
Сумма=5662.18
ДатаСписано=23.04.2018
Плательщик=ИНН 4826050620 ООО "ПРОМНОВАЦИЯ"
ПлательщикИНН=4826050620
ПлательщикКПП=482601001
ПлательщикСчет=40702810352100000099
Плательщик1=ООО "ПРОМНОВАЦИЯ"
ПлательщикРасчСчет=40702810352100000099
ПлательщикБанк1=ПАО АКБ "АВАНГАРД"
ПлательщикБанк2=г. МОСКВА
ПлательщикБИК=044525201
ПлательщикКорсчет=30101810000000000201
ДатаПоступило=
Получатель=ИНН 482400514895 Левашева Мария Владимировна
ПолучательИНН=482400514895
ПолучательСчет=40817810752100901942
Получатель1=Левашева Мария Владимировна
ПолучательРасчСчет=40817810752100901942
ПолучательБанк1=ПАО АКБ "АВАНГАРД"
ПолучательБанк2=г. МОСКВА
ПолучательБИК=044525201
ПолучательКорсчет=30101810000000000201
ВидОплаты=01
СрокПлатежа=
Очередность=5
НазначениеПлатежа=Для зачисления на счет Левашевой Марии Владимировны Перечисление подотчетной суммы Сумма 5662-18 Без налога (НДС)
КонецДокумента
endpayment

该块从startpayment开始到endpayment,并且dict将此块分隔为=符号(它可以是空值)。但是,我不能这样做..有人可以帮助我吗?非常感谢

1 个答案:

答案 0 :(得分:0)

试试这个:

split_properties=[line.split("=") for line in open('/<path_to_property_file>)]
properties={key: value for key,value in split_properties }

我是从here得到的。还有其他在python中解析.properties文件的例子,也可能看看here

相关问题