Using %s in Python strips leading zeroes in CSV to XML conversion
拿这个测试CSV文件:
1 2 | COLUMN1;COLUMN2;COLUMN3;COLUMN4;COLUMN5;COLUMN6;COLUMN7 CODE;1234;0123456789;0987654321;012345678987654321;012345;10110025 |
我想将此文件转换为XML。 为此,我使用此Stackoverflow答案中的代码。 完整的测试代码是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import csv import pandas as pd df = pd.read_csv('test.csv', sep=';') def convert_row(row): return"""<root> <column1>%s</column1> <column2>%s</column2> <column3>%s</column3> <column4>%s</column4> <column5>%s</column5> <column6>%s</column6> <column7>%s</column7> </root>""" % ( row.COLUMN1, row.COLUMN2, row.COLUMN3, row.COLUMN4, row.COLUMN5, row.COLUMN6, row.COLUMN7) print ' '.join(df.apply(convert_row, axis=1)) |
但是,以零开头的每个列值都会被去掉前导零字符。 这是输出:
1 2 3 4 5 6 7 8 9 | <root> <column1>CODE</column1> <column2>1234</column2> <column3>123456789</column3> <column4>987654321</column4> <column5>12345678987654321</column5> <column6>12345</column6> <column7>10110025</column7> </root> |
我认为使用
如何确保XML输出在CSV文件中获得完全相同的值?
问题不在于字符串格式,而在于CSV导入。 导入时,Pandas会将您的数据转换为
尝试
希望这可以帮助!