Skip to content
Advertisement

python – storing lists as text and converting back again without separation issues

what I want is to read and write list of texts to a txt file without separation issues


here’s a example from browsers

  • if I search ‘cats dogs’, the link becomes ‘cats+dogs’
  • if I search ‘cats+dogs’, the link becomes ‘cats%2Bdogs’
  • if I search ‘cats%2Bdogs’, the link becomes ‘cats%252Bdogs’

it is little ahead of my skills rn (:

lis = ['abc', 'def', '123']
def list_to_text(lis):
    pass

def text_to_list(text):
    pass

Advertisement

Answer

It looks like you want to serialize the list into a string, store it, then deserialize that string. You likely want to use the json module, as your example only uses primitives in your list. Like this:

import json

lis = ['abc', 'def', '123']
serialized = json.dumps(lis)
# store `serialized` somewhere, or to a file with json.dump()

out = json.loads(serialized)  # or use json.load() if reading from a file
print(out)

If you need to store data that JSON does not support, try using pickle instead (though, note that you should only pickle trusted data, not user input). It has the same interface as the json module. Like this:

import pickle

lis = ['abc', 'def', '123']
serialized = pickle.dumps(lis)
# store `serialized` somewhere, or to a file with json.dump()

out = pickle.loads(serialized)  # or use json.load() if reading from a file
print(out)
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement