0
我有JSON這樣的:得到JSON夾具項目在Python
[
{
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」(在第二個代碼中)。但爲什麼?它確實是字典,而不是字符串。我已經閱讀了許多類似的話題,並且似乎讓人們建議。我的代碼有什麼問題?
'json.dumps'給你一個字符串,而不是字典。而且,你的''''鍵的值是'json',你正在訪問它的'0th'索引。 –
剛剛嘗試過:name = dic [0] ['fields'] ['username'],它返回「andriy」。但這很奇怪 – Andriy