2014-10-13 3 views
0
import sys 
import os 
import urllib 
from xml.etree.ElementTree import ElementTree 
from xml.etree.ElementTree import tostring 
import flickrapi 

api_key = '    ' 
api_password = '   ' 
photo_id='2124494179' 
flickr= flickrapi.FlickrAPI(api_key, api_password) 
#photos= flickr.photos_getinfo(photo_id='15295705890') 
#tree=ElementTree(flickr.photos_getinfo(photo_id)) 
#image_id=open('photoIds.txt','r') 
#Image_data=open('imageinformation','w') 
#e=image_id.readlines(10) 
#f= [s.replace('\r\n', '') for s in e] 
#num_of_lines=len(f) 
#image_id.close() 
#i=0 
#while i<269846: 
# term=f[i] 
#try: 
photoinfo=flickr.photos_getinfo(photo_id=photo_id) 
photo_tree=ElementTree(photoinfo) 
#photo_tree.write('photo_tree') 
#i+=1 
#photo=photo_tree.getroot() 
#photodata=photo.getiterator() 
#for elem in owner.getiterator(): 
#for elem in photo.getiterator(): 
for elem in photo_tree.getroot(): 
    farm=elem.attrib['farm'] 
    id=elem.attrib['id'] 
    server=elem.attrib['server'] 
#title=photo_tree.find('title').txt 
#for child in elem.findall(): 
    # username=child.attrib['username'] 
    # location=child.attrib['location'] 
    # user=elem.attrib['username'] 
print (farm) 
print(id) 
print(server) 
#owner=photo_tree.findall('owner') 
# print(username) 
#filename="%s.txt"%(farm) 
#f=open(filename,'w') 
#f.write("%s"%farm) 
#for elem in photo_tree.getiterator(): 
#for child in photo_tree.getiterator(): 
#print (child.attrib) 
#owner=child.attrib['username'] 

Я хотел бы, чтобы прочитать данные из файла и передать его flickrapi метод, чтобы получить информацию по автору рекурсивно с помощью pythonand сохранить его в виде файла в текстовом виде: Image ID = .. .. имя пользователя = ... location = ... tags = ... и т. д. Я мог сохранить атрибуты первого элемента с помощью .getroot(), но я попытался получить атрибуты другого элемента, но он возвращает ошибку. Я хочу сохранить атрибуты в txt-файле и прочитать идентификаторы изображений из файла, чтобы я мог использовать эти данные в алгоритме, над которым я работаю.Сохранение Flickrapi объект ответа в виде текстового файла

ответ

0

С тех пор как я выяснил, как решить проблему (я новичок и почти ничего не знаю о python), нам нужно сделать итератор объекта (поскольку он не сохраняется как файл xml), используя теги name следующим образом:

photo_tree=ElementTree(photoinfo) 
    for elem in photo_tree.getroot(): 
    uploaded=elem.attrib['dateuploaded'] 
    uploaded=datetime.datetime.fromtimestamp(float(uploaded)).strftime('%Y-%m-%d %H:%M:%S') 
    for elem in photo_tree.getiterator(tag='dates'): 
    taken_date=elem.attrib['taken'] 
    photo_info = open(head + 'filename/' + ('%d.txt') % (id),'a') 
    photo_info.write(str(id)+'\t'+uploaded+'\t'+taken_date+'\t'+'\n') 

может помочь кому-то, кто ищет решение по той же проблеме. Или может быть эффективный способ решить эту проблему!

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

  • Нет связанных вопросов^_^