**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
4天前关闭。
Improve this question
我是一名网络工程师,正在学习python。最近我一直在使用json文件,通过python阅读数据,但正在努力找出将IP地址字符串转换为列表并ping每个地址的方法。我认为采用这种方法将是了解python在网络环境中如何工作的一个好方法。
json文件内容为:[ {“名称”:“路由器02”、“主机”:“10.1.2.13“} {“姓名”:“路由器03”、“主机”:“10.0.1.13“} ]
import json
from pythonping import ping
with open ('credentials.json', 'r') as f:
hosts = json.load(f)
for router in hosts:
print(router['host'])
Host = (router['host'])
ping(Host, verbose=True)
使用这段代码我可以ping第一个地址,因为我知道这会把json数据转换成字典,字典中不能有重复的键值。转换成IP地址列表是前进的方向。
如何打开json文件并将文件内容转换为列表?理想情况下,我只想列出IP地址。
我一直在尝试各种变体,将代码直接切回到这一点,看看文件打开和转换为列表是否成功:
import json
from pythonping import ping
with open ('credentials.json', 'r') as f:
hosts = json.loads('credentials.json')
print (hosts)
已尝试将加载替换为转储到,但一直出现追溯错误。
我期望打印输出显示列表内容。
2条答案
按热度按时间6rqinv9w1#
1.您的JSON格式错误,其内容应为
(list条目之间应以逗号分隔)
1.应该从file对象读取JSON内容
1.您可以通过一个解析循环从字典中获取主机列表
最终代码可能如下所示(假设JSON是正确的):
t9eec4r02#
谢谢你的反馈。我用记事本++和JSON查看器整理了文件格式,解决了那个问题。
要回答@jarmod,文件名很奇怪,因为它开始时是一个凭据文件,但当我找到自己的方式时,它最终变成了一个主机列表。
另外,为了回答@DarkKnight,我在windows上运行这个,它不关心谁运行什么!虽然早些时候在Ubuntu上运行python脚本时,我确实遇到了ping问题。