Python中文
首页
教程
问答
标签
搜索
登录
注册
如何修复“列表索引必须是整数或片”
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在做一个程序,应该保存您的ip地址到一个单独的文件列表中使用搁置。每次打开时,它都应该将ip地址放在列表“pubiplist”中的列表“pubicount”中。当我去添加一个新的ip我得到一个错误,我不明白。你知道吗</p> <p>我只是一点一点地运行代码来查找损坏的部分,我还冒昧地将它缩小到您需要帮助我的信息。我已经在网上找了一个可能的答案,但没有找到任何对我有帮助的。你知道吗</p> <pre><code>import shelve import socket import urllib.request save = shelve.open('ip_whitelist', writeback=True) hostname = socket.gethostname() PubIP = urllib.request.urlopen('https://ident.me').read().decode('utf8') LocIP = socket.gethostbyname(hostname) save['pubipcount'] = 0 save['pubiplist'] = [] save['pubipcount'] = save['pubipcount'] + 1 save['pubiplist']['pubipcount'] = PubIP </code></pre> <p>这就是确切的错误:</p> <pre><code>Traceback (most recent call last): File "C:\Users\brenn\Desktop\IP\ip.py", line 27, in <module> save['pubiplist']['pubipcount'] = PubIP TypeError: list indices must be integers or slices, not str </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>Shelve允许将字符串用作键,但不能将其用作子索引。你知道吗</p> <p>最快的解决方法是将计数插入到键中:</p> <pre><code>save[f'pubiplist-{pubipcount}'] = PubIP </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
8 回答
如何在乒乓球游戏中阻止球
9 回答
如何在乘法和模中不乘空间?
4 回答
如何在乘法和除以2个不同的数字之间进行交换?
4 回答
如何在也是数据一部分的单个字符上拆分大字符串
6 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
8 回答
如何在事件wxWidgets中传递自定义数据
10 回答
如何在事件中使用lambda i=i?
8 回答
如何在事件中心只接收最近的数据
10 回答
如何在事件发生之前保持云函数运行?
3 回答
如何在事件发生后使页面重定向到同一页面
7 回答
如何在事件回调之间保持python生成器的状态
9 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
8 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
10 回答
如何在事件处理程序中访问外部对象?
8 回答
如何在事件循环中将协程打包为正常函数?
10 回答
如何在事件循环之外运行协同程序?
5 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
9 回答
如何在事件文件中只保留一份摘要?
5 回答
如何在事件模板中添加事件
3 回答