python - Python: TypeError: 'int' object is not iterable - when iterating a dict
问题描述
I am trying to get the list of local user my windows have.
I figured it out i can get the list in a form of a dictionary using win32net.NetUserEnum, however, since i just need the username, i'm trying to fetch that information from the dict and i've managed to do it already.
But i still have a problem, the script it's returning this message:
Administrator Traceback (most recent call last): Guest File "D:/QUIZ/OCRLAB/orissupportaut.py", line 9, in DefaultAccount for user in listausers[i]: userjohn TypeError: 'int' object is not iterable teste UtilityAccount
Anyway knows why this is happening?
Thanks
import win32api
import win32net
import win32netcon
listausers = win32net.NetUserEnum(None,2)
utilizadores= []
for i in range(len(listausers)):
for user in listausers[i]:
if type(user) == int:
pass
else:
print(user.get("name"))
解决方案
这符合您的要求吗?使用isinstance而不是检查类型的值。您收到此错误是因为 NetUserEnum 返回一个由用户字典和一些额外值(整数)组成的列表,如此处所述。
import win32api
import win32net
import win32netcon
listausers = win32net.NetUserEnum(None,2)
utilizadores= []
for i, users in enumerate(listausers):
if not isinstance(users, int):
for user in users:
if isinstance(user, int):
pass
else:
print(user.get("name"))
您也可以通过切片列表来查看字典本身。
for user in listausers[0]:
print(user.get("name"))
推荐阅读
- python - 调整 for 循环以仅根据 df 中的出现频率返回值
- authentication - Spring security:基于自定义逻辑而不只是 URL 请求登录
- angular - 在 Angular 和 Ionic 项目之间导入服务时,'inject() 必须从注入上下文中调用'
- javascript - Firebase 和 Vuex:为什么用户配置文件文档在页面刷新之前不存在?
- scala - 如何使用 scalac 编译具有依赖项的类?
- c++ - ARM64上的多播“没有这样的设备”?
- docker - 发出 EC2 停止实例时如何使用 docker-compose down 优雅地停止 docker 服务
- java - 使用反射库时出现 UnsupportedClassVersionError: JVMCFRE003 错误
- python - 如何在 Python 中提取一个字典的键和值
- groovy - Nextflow 将提交的输出显示为空