首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在列表索引上迭代JSON - typeError

在列表索引上迭代JSON - typeError
EN

Stack Overflow用户
提问于 2018-10-16 09:08:53
回答 1查看 59关注 0票数 2

在尝试遍历JSON对象时,我遇到了一个奇怪的“强制转换”问题。一旦迭代值达到100,脚本就会出错,并抱怨键值必须是整数。

代码语言:javascript
运行
复制
import json
#from pprint import pprint

with open('/tmp/myfile.json') as f:
    data = json.load(f)
line_entries = len(data)
len_w = len(data[0]["w"])
#print(line_entries)
line_iter = 0
main_iter = 0
sub_iter = 0
while line_iter < line_entries:
    v = data[line_iter]["v"]["h"]
    c = data[line_iter]["v"]["d"]
    print("=========================================================")
    print("Dest: ", v)
    print("Cart: ", c)

    while sub_iter < len_wp:
        sn = data[line_iter]["w"][sub_iter]["s"]["n"]
        at = data[line_iter]["w"][sub_iter]["at"]
        dt = data[line_iter]["w"][sub_iter]["dt"]
        sub_iter = sub_iter + 1
        print(sn)
        print(at)
        print(dt)
    line_iter = line_iter + 1
    print("=========================================================")

该脚本为记录0到99打印罚款,但从100开始打印:

代码语言:javascript
运行
复制
v = data[line_iter]["v"]["h"]
TypeError: list indices must be integers or slices, not str
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-16 09:14:37

JSON对象可能包含列表或字典等。只要您有字典,您就可以通过示例中的字符串类型键(如"v" )访问它,但对于列表则不适用。因此,我的猜测是,记录100具有列表的类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52831874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档