我有一个Python模块,其中有一个Person对象,我正在像这样初始化它
person = {
'name': "",
'city': "",
'phone1': "",
'emailaddress': "",
}然后,我尝试填充这些字段,如果我无法得到我想要的值,那么就指望返回到默认的空字符串中。然后,我发布了这个对象:
req = urllib2.Request('API_LOCATION')
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json.dumps(person))另一方面,我使用一个收集人员的ASP.NET web,我发现应该是空字符串的项是空的。
[System.Web.Http.HttpPost]
[System.Web.Http.Route("api/postperson")]
public JsonResult PostPerson(Person item)
{
... Items that I expect to be empty strings are actually null
}我做错了什么?我希望在python模块中发送空字符串,而不是空字符串。我已经使用ASP.NET客户机进行了测试,以将其发布到相同的api中,并且在该实例中,空字符串的传递是正确的。
发布于 2016-01-30 11:22:27
json工作很好。只是urllib有一个非常混乱、冗长和完全不直观的界面。下面是如何使用urllib提交这些数据参数
import urllib
import urllib2
data = urllib.urlencode(person)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)但实际上,您应该立即摆脱urllib,开始使用requests
reponse = requests.get(url, data=person)或
response = requests.post(url, data=person)https://stackoverflow.com/questions/35100532
复制相似问题