2016-03-17 3 views
1

Я пытаюсь сохранить текстовый файл jsonas, я могу распечатать файл, но не могу сохранить файл, а также o/p идет с символом unicode.Python: хранить данные в файле

PFB код.

import json 
from pprint import pprint 
with open('20150827_abc_json') as data_file: 
    f=open("file.txt","wb") 
    f.write(data=json.load(data_file)) 
    print (data)>f 
    f.close() 

Когда я исполняю его, файл будет создан, но его нулевого байта, а также, как я могу избавиться от Юникода характера, а также сохранить выход.

о/р

u'Louisiana', u'city': u'New Olreans' 
+1

Вы просто скопируете содержимое одного файла в другой? Почему бы просто не скопировать его? – alpha1554

+1

Что вы ожидаете от 'print (data)> f', потому что 1) данные не определены и 2) вы печатаете больше, чем сравнение, а не' f.write (data) ' –

ответ

2

Для сериализации JSON в файл, вы должны использовать json.dump функцию. Попробуйте использовать следующий код

import json 
from pprint import pprint 
with open('20150827_abc_json') as data_file, open('file.txt','w') as f: 
    data=json.load(data_file) 
    print data 
    json.dump(data,f) 
+2

Вы можете добавить' f 'в' with', добавив запятую –

+0

@ cricket_007 Вы правы, я обновил свой ответ – kvorobiev

0

синтаксис print неправильно, вы положили только один > в то время как должно быть две из них >>. в Python 3 (или python2 если вы from __future__ import print_function) вы можете также писать в более явном виде:

print("blah blah", file=yourfile) 

Я также хотел бы предложить использовать менеджер контекста для обоих файлов:

with open('20150827_abc_json') as data_file: 
    with open("file.txt","wb") as file: 
     ... 

иначе вы рискуете, что ошибка оставит ваш файл назначения ожидающим.