staram się przetworzyć plik, który wygląda mniej więcej tak:Python: Konwersja wielu instancji tego samego klucza do wielu wierszy
f=0412345678 t=0523456789 t=03s=Party! flag=urgent flag=english id=1221AB12
wiem, może na przykład używać Python shlex do analizowania tych bez główne problemy z czymś takim jak:
entry = "f=0412345678 t=0523456789 t=03s=Party! flag=urgent flag=english id=1221AB12"
line = shlex.split(entry)
Mogę następnie wykonać pętlę for i powtórzyć parami klucz-wartość.
row = {}
for kvpairs in line:
key, value = kvpairs.split("=")
row.setdefault(key,[]).append(value)
print row
Wyniki w:
{'id': ['1221AB12'], 's': ['Party!'], 'flag': ['urgent', 'english'], 't': ['0523456789', '03'], 'f': ['0412345678']}
tej pory tak dobrze, ale mam problem ze znalezieniem skutecznego sposobu wyprowadzania oryginalną linię tak, że wyjście wygląda następująco:
id=1221AB12 f=0412345678 t=0523456789 s=Party! flag=urgent
id=1221AB12 f=0412345678 t=0523456789 s=Party! flag=english
id=1221AB12 f=0412345678 t=03s=Party! flag=urgent
id=1221AB12 f=0412345678 t=03s=Party! flag=english
Czy kolejność tych par klucz-wartość ma znaczenie? –
@SebastianPhilipp: tak. Powinny drukować w tej samej kolejności zawsze. (ponieważ wynik jest bardziej podobny do TSV niż wartość oddzielona spacją, jak pokazano) –