SQLite를 사용하여 데이터베이스에 액세스하고 원하는 정보를 검색하고 있습니다. Python 버전 2.6에서 ElementTree를 사용하여 해당 정보로 XML 파일을 만듭니다.
import sqlite3
import xml.etree.ElementTree as ET
# NOTE: Omitted code where I acccess the database,
# pull data, and add elements to the tree
tree = ET.ElementTree(root)
# Pretty printing to Python shell for testing purposes
from xml.dom import minidom
print minidom.parseString(ET.tostring(root)).toprettyxml(indent = " ")
####### Here lies my problem #######
tree.write("New_Database.xml")
위 코드의 마지막 줄 대신 tree.write ( "New_Database.xml", "utf-8")
를 사용해 보았지만 XML의 레이아웃을 전혀 편집하지 않았습니다. 여전히 뒤죽박죽입니다.
나는 또한 바이올린을 연주하기로 결정하고 시도했습니다.
tree = minidom.parseString (ET.tostring (root)). toprettyxml (indent = "")
Python 셸에 인쇄하는 대신 AttributeError : '오류가 발생합니다. unicode '개체에는'write '속성이 없습니다 .
마지막 줄의 XML 파일에 트리를 쓸 때 Python 셸과 마찬가지로 XML 파일에 예쁜 인쇄 방법이 있습니까?
여기서 toprettyxml ()
을 사용할 수 있습니까? 아니면 다른 방법이 있습니까?
해결 방법
XML 문자열이 무엇이든, 쓰기 위해 파일을 열고 파일에 쓰기 위해 파일을 열어 원하는 파일에 쓸 수 있습니다.
from xml.dom import minidom
xmlstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent=" ")
with open("New_Database.xml", "w") as f:
f.write(xmlstr)
특히 Python 2에서는 문자열의 유니 코드 문자에 대해 덜 엄격하고 덜 정교 해지는 한 가지 가능한 복잡성이 있습니다. toprettyxml
메서드가 유니 코드 문자열 ( u "something"
)을 다시 전달하는 경우 UTF-8과 같은 적절한 파일 인코딩으로 캐스팅 할 수 있습니다. 예 : 하나의 쓰기 줄을 다음으로 바꿉니다.
f.write(xmlstr.encode('utf-8'))
참조 페이지 https://stackoverflow.com/questions/28813876
'파이썬' 카테고리의 다른 글
파이썬 Python 일광 절약 시간 (0) | 2020.11.28 |
---|---|
파이썬 출력에 '없음'으로 인쇄되는 이유는 무엇입니까? (0) | 2020.11.28 |
파이썬 Check if any item in Python list is None (but include zero) (0) | 2020.11.28 |
파이썬에서 집합 작업에 대 업데이트 추가 (0) | 2020.11.28 |
파이썬 How to delete the current row in pandas dataframe during df.iterrows() (0) | 2020.11.28 |
댓글