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
конечно ;-) не соответствует тому, что вы наблюдаете, вы» ve нашел ошибку, поэтому очень важно сообщить, какие версии Python и simplejson
вы используете, и точно какая ошибка вы получите, в комплекте с трассировкой (отредактируйте свой Q, чтобы добавить это - очевидно, важно - информация!).
Когда вы печатаете 'file_contents', что вы видите? Не угадывайте, на самом деле показывайте фактическую ценность, пожалуйста. –
Это показывает [u'a ', u'b', u'c '] – Tom
Это означает, что это уже список ... Префикс 'u' говорит, что строки являются unicode, но он делает именно то, что вы хотели. .. –