with open("data.txt") as f:
filecontents = simplejson.load(f)
действительно перезагружает данные именно так, как вы указали.Что может сбить вас с толку, так это то, что все строки в JSON всегда Unicode - JSON (как и Javascript) не имеет тип данных «строка байтов», отличный от «unicode».
Редактировать У меня больше нет старого simplejson
(поскольку его текущая версия стала частью стандартной библиотеки Python как json
), но вот как это работает (создание json
маскарадакак simplejson
в надежде избежать путаницы с вами! -) ...:
>>> import json
>>> simplejson = json
>>> f = open("data.txt","w")
>>> l = ["a","b","c"]
>>> simplejson.dump(l,f)
>>> f.close()
>>> with open("data.txt") as f: fc = simplejson.load(f)
...
>>> fc
[u'a', u'b', u'c']
>>> fc.append("d")
>>> fc
[u'a', u'b', u'c', 'd']
>>>
Если этот точный код (за исключением первых двух строк, если то, что вы делаете вместо этого, конечно, import simplejson
;-) не соответствует тому, что вы наблюдаете, вы обнаружили ошибку, поэтому очень важно сообщить, какие версии Python и simplejson
вы используете, и какую именно ошибку вы получите, вместе с traceback (отредактируйте Q, чтобы добавитьэто - очевидно, крайне важно - информация!).