求助
while True:try:
response = requests.post(url, headers=headers, data=data, verify=False)
response.json()
break
except:
# print("pass2")
pass
if ['units'] is not None:
for j in response.json()['data']['data']:
for m in j['units']:
data = {
"projectId": i['uuid'],
"buildingId": j['id'],
"unitId": m['id']
}
while True:
try:
response = requests.post(url, headers=headers, data=data, verify=False)
response.json()
break
except:
错误for m in j['units']:
TypeError: 'NoneType' object is not iterable 这个错误是因为变量`j`的值是`None`,而`None`类型是不可迭代的。所以在使用`for`循环遍历`j`时会报错。
要解决这个问题,你可以在遍历`response.json()`之前,添加一个判断语句来检查`response.json()`的返回值是否为`None`。如果为`None`,则跳过当前的循环。
下面是修改后的代码:
while True:
try:
response = requests.post(url, headers=headers, data=data, verify=False)
json_data = response.json()
if json_data is not None:
for j in json_data:
if j is not None:
for m in j:
data = {
"projectId": i,
"buildingId": j,
"unitId": m
}
while True:
try:
response = requests.post(url, headers=headers, data=data, verify=False)
response.json()
break
except:
# 处理请求异常的代码
pass
break
except:
# 处理请求异常的代码
pass
希望这个解答对你有帮助!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-4-15 11:01
这个错误是因为变量`j`的值是`None`,而`None`类型是不可迭代的。所以在使用`for`循环遍历`j`时会报错。
...
木有对 一介书生423 发表于 2024-04-15 11:17
木有对
抱歉,我之前的回答可能不够清晰。让我们来重新看一下你的代码和问题。
根据你提供的代码片段,我们可以看到有两个 `for` 循环嵌套在一起,分别是对 `response.json()` 和对 `j` 的遍历。你遇到的错误是 `'NoneType' object is not iterable`,这意味着你正在尝试迭代一个 `None` 对象。
根据你的描述,问题可能出现在 `response.json()` 这一行,因为当请求失败时,`response.json()` 可能返回 `None`。
为了解决这个问题,我们可以先检查 `response.json()` 的返回值,如果为 `None`,则跳过当前循环。修改的代码如下:
while True:
try:
response = requests.post(url, headers=headers, data=data, verify=False)
json_data = response.json()
if json_data is not None:
for j in json_data:
for m in j:
data = {
"projectId": i,
"buildingId": j,
"unitId": m
}
while True:
try:
response = requests.post(url, headers=headers, data=data, verify=False)
response.json()
break
except:
# 处理请求异常的代码
pass
break
except:
# 处理请求异常的代码
pass
这样,在遍历 `response.json()` 之前,我们先检查它的返回值是否为 `None`,如果是,则跳过当前的循环。
希望这次解答对你有所帮助,如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-4-15 11:01
这个错误是因为变量`j`的值是`None`,而`None`类型是不可迭代的。所以在使用`for`循环遍历`j`时会报错。
...
可否留个邮箱帮看看 一介书生423 发表于 2024-04-15 11:18
可否留个邮箱帮看看
非常抱歉,我是一个人工智能助手,无法提供个人邮件支持。但是,您可以在这里向我提问,并我会尽力帮助您解决您的编程问题。如果您有任何疑问或需要帮助,请随时在这里向我提问。谢谢!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 一介书生423 发表于 2024-4-15 11:18
可否留个邮箱帮看看
你要先保证你请求下来的数据是对的然后才能对数据进行清洗
如果你请求下来的数据是空值 或者是错误值 那就没必要进行下一步了 本帖最后由 jackz007 于 2024-4-15 11:49 编辑
if ['units'] is not None:
这是什么写法?['units'] 就是一个只有一个字符串元素的列表,这个表达式的值恒为 True!还不如直接这么写:
if True :
来的更加清楚简单 wp231957 发表于 2024-4-15 11:30
你要先保证你请求下来的数据是对的然后才能对数据进行清洗
如果你请求下来的数据是空值 或者是错误值...
前面几页是对的到某一页才出现错误大神能否留个邮箱帮看看 jackz007 发表于 2024-4-15 11:47
这是什么写法?['units'] 就是一个只有一个字符串元素的列表,这个表达式的值恒为 True!
大神能否留个邮箱帮看看 jackz007 发表于 2024-4-15 11:47
这是什么写法?['units'] 就是一个只有一个字符串元素的列表,这个表达式的值恒为 True!还不如 ...
可否留个邮箱
页:
[1]