Skip to content Skip to sidebar Skip to footer

Python - Loading File - Dictionary

i'm trying to write a function that will turn my text file into a dictionary with subsets. The text document that i have loaded so far is displayed as showed: 101 102 103 201, John

Solution 1:

import re

class Guest(object):
  ...

data = []
with open('data.txt') as f:
  for line in f:
    tok = re.split(r'\s*,\s*', line.strip())
    if len(tok) > 1:
      guest = Guest(tok[1], tok[2], tok[3])
    else:
      guest = None
    data.append((tok[0], guest))

print(data)

Implementing the Guest class is left as an exercise for the reader.


Solution 2:

I'm not sure if you need the re module

try this

def load_file( filename ):
    text = open( "data.txt" ).readlines()
    rooms = {}
    for line in text:
        room_data = line.strip( '\n' ).split( ',' )
        if len( room_data ) > 1:
            #rooms[room_data[0]] = room_data[1:]
            rooms[room_data[0]] = tuple( room_data[1:] )
        else:
            rooms[room_data[0]] = None

    return rooms 

you mention dictionary in your title but your expected outcome is nested lists.

Edit

Answered?


Post a Comment for "Python - Loading File - Dictionary"