我有过这样的经历:
[
{
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
},并尝试获取项目“用户名”的值:
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)或以这种方式:
....
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”(在第二个代码中)。但是为什么呢?它确实是切碎的,而不是绳子。我到处都读过很多类似的话题,似乎也是人们的建议。我的密码怎么了?!
发布于 2015-10-04 08:43:06
dic['fields'][0]['username']应该改为dic[0]['fields']['username']。因此,第二个源代码应该是:
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)https://stackoverflow.com/questions/32931478
复制相似问题