首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python修改JSON文件

使用Python修改JSON文件
EN

Stack Overflow用户
提问于 2019-03-06 14:45:34
回答 2查看 57关注 0票数 0

我正在尝试编写一个Python脚本来从JSON文件中读取数据,对其进行一些计算,然后将输出写入一个新的JSON文件。但是我似乎不能自动化JSON读取过程。我得到了这个错误。你能帮我解决这个问题吗?非常感谢

代码语言:javascript
复制
print([a[0]][b[1]][c[1]])
TypeError: list indices must be integers or slices, not str

test.json

代码语言:javascript
复制
{
      "male": {
            "jack": {
                  "id": "001",
                  "telephone": "+31 2225 345",
                  "address": "10 Street, Aukland",
                  "balance": "1500"
            },
            "john": {
                  "id": "002",
                  "telephone": "+31 6542 365",
                  "address": "Main street, Hanota",
                  "balance": "2500"
            }
      },

      "female": {
            "kay": {
                  "id": "00",
                  "telephone": "+31 6542 365",
                  "address": "Main street, Kiro",
                  "balance": "500"
            }
      }
}

test.py

代码语言:javascript
复制
with open("q.json") as datafile:
    data = json.load(datafile)

    a = ['male', 'female']
    b = ['jack', 'john', 'kay']
    c = ['id', 'telephone', 'address', 'balance']

    print([a[1]][b[1]][c[1]])
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-06 14:54:12

如果我没理解错的话,您真的希望打印来自JSON的数据,而不是您的中间数组。

所以:

代码语言:javascript
复制
print(data['Male'])  # will print the entire Male subsection
print(data['Male']['Jack'])  # will print the entire Jack record
print(data['Male']['Jack']['telephone'])  # will print Jack's telephone

但是为了把它和你的中间数组联系起来:

代码语言:javascript
复制
print(data[a[0]])  # will print the entire Male subsection
print(data[a[0]][b[0]])  # will print the entire Jack record
print(data[a[0]][b[0]][c[0]])  # will print Jack's telephone

假设您正确地声明了a

代码语言:javascript
复制
a = ['Male', 'Female']  # Notice the capitals
票数 1
EN

Stack Overflow用户

发布于 2019-03-06 14:51:50

我不知道如何在代码中访问data,因为您直接将硬编码值写入abc。此外,您还可以通过以下方式打印测试:print(a[1], b[1], c[1])

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

https://stackoverflow.com/questions/55017135

复制
相关文章

相似问题

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