首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Python中的json治具中获取项

从Python中的json治具中获取项
EN

Stack Overflow用户
提问于 2015-10-04 08:22:36
回答 1查看 544关注 0票数 1

我有过这样的经历:

代码语言:javascript
复制
[
  {
    fields: {
      username: "andriy",
      first_name: "",
      last_name: "",
      is_active: true,
      is_superuser: true,
      is_staff: true,
      last_login: "2015-03-26T13:20:01.902Z",
      groups: [ ],
      user_permissions: [ ],
      password: "pbkdf2_sha256$12000$YluCbMyidWwL$yH",
      email: "",
      date_joined: "2015-03-26T13:19:23.269Z"
    },
    model: "auth.user",
    pk: 4
  },

并尝试获取项目“用户名”的值:

代码语言:javascript
复制
import json
from collections import OrderedDict
from django.http import HttpResponse

path = 'management/test.json'
def load_fixture(name):
    r = json.load(open(path,'r+'), object_pairs_hook=OrderedDict)
    dic =  json.dumps(r, indent=2)
    name = dic['fields'][0]['username'] 
    return HttpResponse(name)

或以这种方式:

代码语言:javascript
复制
....
    def load_fixture(name):
    with open(path,'r+') as json_file:
        json_data = json_file.read()
        dic = json.loads(json_data)
        name = dic['fields'][0]['username']

        return HttpResponse(name)

并且总是得到错误:“字符串索引必须是整数,而不是str”或“列表索引必须是整数,而不是str”(在第二个代码中)。但是为什么呢?它确实是切碎的,而不是绳子。我到处都读过很多类似的话题,似乎也是人们的建议。我的密码怎么了?!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-04 08:43:06

dic['fields'][0]['username']应该改为dic[0]['fields']['username']。因此,第二个源代码应该是:

代码语言:javascript
复制
def load_fixture(name):
with open(path,'r+') as json_file:
    json_data = json_file.read()
    dic = json.loads(json_data)
    name = dic[0]['fields']['username']

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

https://stackoverflow.com/questions/32931478

复制
相关文章

相似问题

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