如何 remove/skip <class 'NoneType'> 反对 Python
How to remove/skip <class 'NoneType'> object in Python
我正在从供应商的 SOAP API 调用中接收数据并使用 Zeep 库。数据是class 'NoneType'
,无法遍历。我的任务是remove/skipNoneType object
。
如果我收到包含某些值的响应,我可以对其进行 jsonify,但是,如果响应 returns None - 我无法对其进行 jsonify 或删除。
例如,我传递了两个参数列表并收到了两个响应,一个包含数据,另一个是 None。
我的代码如下:
# Making a SOAP call and save the response
response = client.service.GetOrders(**params[0])
# convert the response object to native Python data format
py_response = helpers.serialize_object(response)
# jsonify (list of dictionaries)
response_list = json.loads(json.dumps(py_response, indent=4, sort_keys=True, default=str))
print(type(response_list))
print(response_list)
所以输出如下:
<class 'list'> # successfully converted
[{'AgentID': 0, 'AgentName': 'Not specified', 'CustomerID': 1127}]
<class 'NoneType'> # was not converted
None
我试过:
clean_response_list = [x for x in response_list if x != None]
错误:TypeError: 'NoneType' object is not iterable
clean_response_list = [x for x in response_list if x != None]
这是行不通的,因为 response_list 是 None,所以您不能迭代它。
尝试:
response_list = response_list or []
或
if response_list is None:
response_list = []
或
if py_response is not None:
response_list = json.loads(json.dumps(py_response, indent=4, sort_keys=True, default=str))
else:
response_list = []
或
if py_response:
response_list = json.loads(json.dumps(py_response, indent=4, sort_keys=True, default=str))
else:
response_list = []
我正在从供应商的 SOAP API 调用中接收数据并使用 Zeep 库。数据是class 'NoneType'
,无法遍历。我的任务是remove/skipNoneType object
。
如果我收到包含某些值的响应,我可以对其进行 jsonify,但是,如果响应 returns None - 我无法对其进行 jsonify 或删除。
例如,我传递了两个参数列表并收到了两个响应,一个包含数据,另一个是 None。 我的代码如下:
# Making a SOAP call and save the response
response = client.service.GetOrders(**params[0])
# convert the response object to native Python data format
py_response = helpers.serialize_object(response)
# jsonify (list of dictionaries)
response_list = json.loads(json.dumps(py_response, indent=4, sort_keys=True, default=str))
print(type(response_list))
print(response_list)
所以输出如下:
<class 'list'> # successfully converted
[{'AgentID': 0, 'AgentName': 'Not specified', 'CustomerID': 1127}]
<class 'NoneType'> # was not converted
None
我试过:
clean_response_list = [x for x in response_list if x != None]
错误:TypeError: 'NoneType' object is not iterable
clean_response_list = [x for x in response_list if x != None]
这是行不通的,因为 response_list 是 None,所以您不能迭代它。
尝试:
response_list = response_list or []
或
if response_list is None:
response_list = []
或
if py_response is not None:
response_list = json.loads(json.dumps(py_response, indent=4, sort_keys=True, default=str))
else:
response_list = []
或
if py_response:
response_list = json.loads(json.dumps(py_response, indent=4, sort_keys=True, default=str))
else:
response_list = []