python - Python Post 请求响应 Xml 错误加载 fromstring
问题描述
我确实是 Python 的新手,我遇到了一些我不确定如何解决的问题 我确定它一定是一个简单的修复,但还没有找到解决方案,希望有更多 Python 知识的人能够提供帮助. 我的请求:
...
contacts = requests.post(url,data=readContactsXml,headers=headers);
#print (contacts.content) ;
outF = open("contact.xml", "wb")
outF.write(contacts.content)
outF.close();
一切都很好,直到我必须在保存数据之前对其进行操作:
例如:
...
contacts = requests.post(url,data=readContactsXml,headers=headers);
import xml.etree.ElementTree as ET
# contacts.encoding = 'utf-8'
parser = ET.XMLParser(encoding="UTF-8")
tree = ET.fromstring(contacts.content, parser=parser)
root = tree.getroot()
for item in root[0][0].findall('.//fields'):
if item[0].text == 'maching-text-here':
if not item[1].text:
item[1].text = 'N/A'
print(item[1].text)
#print (contacts.content) ;
outF = open("contact.xml", "wb")
outF.write(contacts.content)
outF.close();
在上面我从字面上用值'N/A'替换空值
我收到的错误是:
Traceback (most recent call last):
File "Desktop/PythonTests/test.py", line 107, in <module>
tree = ET.fromstring(contacts.content, parser=parser)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1311, in XML
parser.feed(text)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1659, in feed
self._raiseerror(v)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1523, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 192300
环顾这个专栏,我可以看到一个带有字符 EG: 的文本Sinéd
,É
这是一个问题,实际上,当我保存这个 xml 文件并在浏览器中打开时,我得到了一种相同的错误,关于给或取同一列缺少 2:
This page contains the following errors:
error on line 1 at column 192298: Encoding error
Below is a rendering of the page up to the first error.
我想知道如何处理包含字符数据的数据 xml 响应?
任何人的任何帮助表示赞赏!
解决方案
挖掘堆栈溢出后找到我的答案:
我已经修改:
从:
tree = ET.fromstring(contacts.content, parser=parser)
至:
tree = ElementTree(fromstring(contacts.content))
参考:https://stackoverflow.com/questions/33962620/elementtree-returns-element-instead-of-elementtree/44483259#44483259
推荐阅读
- python - 汤对象中没有必需的项目-BeautifulSoup Python
- python - 将多个 csv 与“日期时间”列结合起来
- c++ - 不能在两个重叠的结构上使用初始化列表
- php - 未定义的属性:Cartalyst\Stripe\Stripe::$subscriptions
- java - Java eBay SDK - 无法初始化类 com.ebay.sdk.SdkAPIInterfaceServiceLocator
- react-native - 在useEffect中反应Native setState不触发重新渲染
- react-hooks - 为什么每个组件的 useRef 和 Set 每次渲染计数 2 次而不是 1 次?
- pentaho - Pentaho bi server 4.0.0 GA 在意外关闭后停止工作
- mysql - 根据列值添加计数列
- javascript - 本地存储不断循环.. React useffects