我需要使用来自python的库请求的PUT请求。XML必须是字符串,但我需要将值作为Int发送。
import requests
bodyXML = """<?xml version='1.0' encoding='utf-8'?><parameters><value>6</value></parameters>"""
bodyHeader = {'Content-Type': 'application/xml'}
p = requests.put('http://test.pt:1891/cash', data=bodyXML, headers=bodyHeader)答案是:
<?xml version = "1.0" encoding = "UTF-8"?><reply-text>Value must be numeric.</reply-text> 这是程序的答案,所以我可以到达目标并获得响应。
如果将6更改为“”+6+“”,则在Python中会收到错误
TypeError: must be str, not int如何将整数转换为字符串?
发布于 2019-01-08 00:33:23
尽管程序员很顽固,我还是找到了一种发送值的方法,因为他们正在使用lxml构建XML,并在要发送的XML之前添加一个字符串"post_xml=“,效果很好:
import requests
from lxml import etree
root = etree.Element("parameters")
child = etree.SubElement(root, "value")
child.text = str(str(6))
xml = str('post_xml=') + etree.tostring(root, encoding='unicode', method='xml')
p = requests.request("PUT", 'http://test.pt:1891/cash', data=xml)
print(p.text)值6被服务器接受为整数。
发布于 2018-12-13 02:02:02
假设您将bodyXML = """<?xml version='1.0' encoding='utf-8'?><parameters><value>6</value></parameters>""" 6的价值放在+6+的位置上,这很容易。问题是字符串行符号“在6之前终止。为了解决这个问题,只需通过引号将整数转换为字符串,或者通过将6封装在import requests bodyXML = """<?xml version='1.0' encoding='utf-8'?><parameters><value>”””+”6”+”””</value></parameters>""" ()中进行转换,就像string(6)一样。
https://stackoverflow.com/questions/53748719
复制相似问题