2014-10-13 2 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'] 
내가 사용 재귀 적 이미지의 정보를 얻을 pythonand 텍스트로 파일에 저장하는 방법을 flickrapi하는 파일에서 데이터를 읽고 전달하고 싶은

: 이미지 ID = .. .. 사용자 이름 = ... 위치 = ... 태그 = ... 등등. .getroot()를 사용하여 첫 번째 요소의 특성을 저장할 수 있지만 다른 요소의 특성을 가져 오려고했지만 오류가 반환됩니다. 나는 속성을 txt 파일에 저장하고 이미지 ID를 파일에서 읽으므로 작업중인 알고리즘에서이 데이터를 사용할 수 있습니다.저장 Flickrapi 응답 객체

답변

0

나는 문제를 풀기 위해 알아 냈으므로 (나는 초보자이고 파이썬에 대해 거의 아는 것이 없다), 태그 이름을 사용하여 객체를 반복자로 만드는 것이기 때문에 (XML 파일로 저장되지 않았기 때문에)

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') 

같은 문제에 대한 해결책을 찾는 사람을 도울 수 있습니다. 아니면이 문제를 해결할 효율적인 방법이있을 수 있습니다 !!