PyXML을 사용해야합니까, 아니면 표준 라이브러리에 있어야합니까?Django/Python을 사용하여 RESTful 웹 서비스에서 XML을 사용하는 방법은 무엇입니까?
3
A
답변
10
ElementTree는 표준 파이썬 libs와의 일부로서 제공된다. ElementTree 순수 파이썬, 그리고 cElementTree는 빠른 C 구현입니다 :
도 BeautifulSoup을있다def find(*args, **kwargs):
"""Find a book in the collection specified"""
search_args = [('access_key', api_key),]
if not is_valid_collection(kwargs['collection']):
return None
kwargs.pop('collection')
for key in kwargs:
# Only the first keword is honored
if kwargs[key]:
search_args.append(('index1', key))
search_args.append(('value1', kwargs[key]))
break
url = urllib.basejoin(api_url, '%s.xml' % 'books')
data = urllib.urlencode(search_args)
req = urllib2.urlopen(url, data)
rdata = []
chunk = 'xx'
while chunk:
chunk = req.read()
if chunk:
rdata.append(chunk)
tree = ElementTree.fromstring(''.join(rdata))
results = []
for i, elem in enumerate(tree.getiterator('BookData')):
results.append(
{'isbn': elem.get('isbn'),
'isbn13': elem.get('isbn13'),
'title': elem.find('Title').text,
'author': elem.find('AuthorsText').text,
'publisher': elem.find('PublisherText').text,}
)
return results
3
가능하면 항상 표준 라이브러리를 사용하는 것을 선호합니다. ElementTree는 pythonistas 사이에 잘 알려져 있으므로 많은 예제를 찾을 수 있어야합니다. 그것의 부분도 C로 최적화되어 있으므로 매우 빠릅니다.
0
있다 :
# Try to use the C implementation first, falling back to python
try:
from xml.etree import cElementTree as ElementTree
except ImportError, e:
from xml.etree import ElementTree
여기에 예를 들어 사용량이 나는 RESTful 웹 서비스에서 XML을 소모하고있어 어디 있어요 일부는 선호하는 API입니다. 다음은 트위터의 공공 타임 라인에서 즐겨 찾기 된 모든 트윗을 추출 할 수있는 방법에 대한 예입니다 :.
from BeautifulSoup import BeautifulStoneSoup
import urllib
url = urllib.urlopen('http://twitter.com/statuses/public_timeline.xml').read()
favorited = []
soup = BeautifulStoneSoup(url)
statuses = soup.findAll('status')
for status in statuses:
if status.find('favorited').contents != [u'false']:
favorited.append(status)
관련 문제
- 1. WCF로 RESTful 웹 서비스를 사용하는 방법은 무엇입니까?
- 2. 웹 서비스에서 Silverlight 개체를 사용하는 방법은 무엇입니까?
- 3. 웹 서비스에서 다운로드 기능을 사용하는 방법은 무엇입니까?
- 4. REST 웹 서비스에서 Httpsession을 사용하는 방법은 무엇입니까?
- 5. 웹 서비스에서 XML을 반환하는 방법
- 6. HTML 양식을 사용하여 XML을 사용하는 방법은 무엇입니까?
- 7. 인증을 사용하여 webservice에서 XML을 사용하는 방법은 무엇입니까?
- 8. RESTful API에서 OpenID를 사용하는 방법은 무엇입니까?
- 9. RESTful 웹 서비스에서 대체 URI에 응답하는 방법
- 10. RESTful WCF 웹 서비스에서 보내고받은 XML 암호화 및 암호 해독
- 11. Net :: HTTP :: Post를 사용하여 XML을 RESTful 웹 서비스에 게시하려면 어떻게해야합니까?
- 12. HTTPWebRequest를 사용하여 웹 서비스에서 웹 메서드를 호출하는 방법은 무엇입니까?
- 13. WCF RESTful 서비스에서 json 형식의 IList를 반환하는 방법은 무엇입니까?
- 14. aspx 웹 서비스에서 xml을 가져 오는 Android
- 15. RESTful 서비스에서 페이지 매기기
- 16. 선택적 매개 변수를 사용하여 검색을위한 RESTful URL을 설계하는 방법은 무엇입니까?
- 17. 내 JSF 프로젝트에서 RESTful 웹 서비스를 사용하는 방법은 무엇입니까?
- 18. iPhone : 웹 서비스에서 JSON 용 "POST"메서드를 사용하는 웹 서비스에서 데이터를 가져 오는 방법은 무엇입니까?
- 19. 웹 기반 응용 프로그램 용 Sdk에서 XML을 사용하는 방법은 무엇입니까?
- 20. jQuery로 웹 서비스에서 XML을 통해 구문 분석
- 21. 웹 서비스에서 사용자 지정 특성을 사용하는 방법은 무엇입니까?
- 22. Flashbuilder 4를 사용하여 REST 웹 서비스를 사용하는 방법은 무엇입니까?
- 23. TIBCO GI를 사용하여 RESTful 웹 서비스를 호출하는 방법은 무엇입니까?
- 24. RestFul 웹 서비스를 비동기식으로 호출하는 방법은 무엇입니까?
- 25. RESTful MVC 웹 서비스입니까?
- 26. RESTful WCF 서비스에서 객체 캐싱
- 27. 웹 서비스에서 자격 증명을 캐시하는 방법은 무엇입니까?
- 28. 자체 호스팅 된 RESTful WCF 웹 서비스에서 GZip 압축을 설정하는 방법은 무엇입니까?
- 29. XML을 사용하여 데이터를 저장하고 검색하는 방법은 무엇입니까?
- 30. XML을 사용하는 가장 좋은 방법은 무엇입니까?
vezult, 어떻게 당신이 elem.get()를 사용하고 때때로 당신은() 텍스트 elem.find 사용 가끔 와서? – rick
@rick : elem.get()은 요소 속성 값을 가져 오는 반면 elem.find()는 elem 요소 내에 포함 된 요소를 검색합니다. – vezult
'tree = ElementTree.parse (urllib2.urlopen (url, data))'는'rdata'리스트없이 동작해야합니다. – jfs