2013-12-16 2 views
0

У меня есть этот простой код Python:написать в вопросе текстовый файл

import facebook # pip install facebook-sdk 
import json 
import codecs 
    ACCESS_TOKEN = '' 
g = facebook.GraphAPI(ACCESS_TOKEN) 

for i in range (0,2): 

    f = open("samples"+str(i)+".txt", 'w') 

    my_likes = [ like['id'] 
      for like in g.request('search', { 'q' : '&','type' : 'page', 'limit' : 5000 ,'offset' :i , 'locale' : 'ar_AR' })['data'] ] 

    f.write(my_likes) 
    f.close() 

, что я хочу сделать, это хранить данные существуют в my_likes списка в текстовый файл. но write() принимает сообщение об ошибке «без ключевых слов». что я делаю неправильно здесь?

редактировать: если удалить indent=1 появляется сообщение об ошибке: «ожидается символьный буфер объекта»

+0

Какой выход вы ожидаете? 'write()' предназначен для просто выписывания строки - если вы хотите, чтобы она была отступом, вам нужно вставить строку самостоятельно. – thegrinner

+0

Что вы ожидаете от 'indent = 1'? –

+3

'json.dump' принимает аргумент' indent', вы, вероятно, хотели его использовать. – roippi

ответ

1

, что я делаю неправильно здесь?

Сообщение об ошибке сообщает вам, что вы делаете неправильно; вы передаете аргумент ключевого слова (indent=1) на write(), который не должен иметь никаких. Согласно the documentation, write имеет только один аргумент, string, чтобы написать. Если вы хотите отложить его в файле, добавьте вкладку ('\t') в начало каждой строки строки.

+0

OK, но если я удаляю indent = 1 появляется сообщение об ошибке: ожидается объект символьного буфера –

+1

Опять же, из документации «Чтобы написать' что-то, кроме строки, оно должно быть преобразовано в строку сначала » – jonrsharpe

+1

Вы, re пытается написать объект списка в файл. Полагаю, вы, возможно, захотели хранить JSON, но я не уверен. В этом случае используйте модуль 'json'. – Iguananaut

Смежные вопросы