You should parse that to a list of dictionaries, not three differente lists, co-related only by data order.
Like in data = [ {"name": "John", "family": "Candy", "age": 72 }, ...]
One possibility, if you can't change the data source, is to do some naive parsing with string methods like split:
myString = "[name = john, family = candy, age = 72],[ name = jeff, family = Thomson, age = 24]"
data = []
for block in myString.split("]"):
if not block: break
block = block.split("[")[1]
entry_dict = {}
for part in block.split(","):
key, value = part.split("=")
key = key.strip()
value = value.strip()
if key == "age": value = int(value)
entry_dict[key] = value
data.append (entry_dict)
Or, if you are on python 2.7 (or 3.1) and want a shorter code, you can use a dict generator
(you can use generators in other versions as well, just creating alist of tuples and adding a "dict" call) :
myString = "[name = john, family = candy, age = 72],[ name = jeff, family = Thomson, age = 24]"
data = []
for block in myString.split("]"):
if not block: break
block = block.split("[")[1]
entry_dict = {}
data.append ({(part.split("=")[0].strip(), part.split("=")[1].strip()) for part in block.split(",") })
(in this version did not convert "age" to numbers, though)