0
JSON dictの特定の情報フィールドにアクセスしようとしています。私はjson.loadsを使用しようとすると、しかしDjangoでJSON dictを使用する
{
'search':None,
'count':1,
'filter':{
},
'issues':[
{
'priority':'major',
'comment_count':0,
'utc_created_on':'2016-11-12 01:48:16+00:00',
'utc_last_updated':'2016-11-12 01:48:16+00:00',
'status':'new',
'title':'example issue',
'reported_by':{
'is_staff':False,
'display_name':'display name',
'is_team':False,
'resource_uri':'/1.0/users/username',
'avatar':'https://bitbucket.org/account/username/avatar/32/?ts=1479493904',
'first_name':'firstname',
'username':'username',
'last_name':'lastname'
},
'is_spam':False,
'content':'blah blah',
'metadata':{
'milestone':None,
'component':None,
'version':None,
'kind':'bug'
},
'local_id':1,
'created_on':'2016-11-12T02:48:16.052',
'resource_uri':'/1.0/repositories/username/supportal2016test/issues/1',
'follower_count':1
}
]
}
:
Views.py
def viewIssues(request):
r = requests.get(bucket_url)
issue_payload = r.json()
issue = json.loads(str(issue_payload))
context = {
"issue_title": issue['issues']['title'],
"issue_content": issue['issues']['content'],
"title": "View Issues",
}
return render(request, "view_issues.html", context)
STR(issue_payload)私はこれを与える:私のコードは次のように設定されています['issues'] ['title'] ['issues'] ['title']エラーが表示されます。
JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
変換されたペイロードには各フィールドに引用があるので'issues')。どんな助けでも大歓迎です。
有効なJSONではありません。文字列の二重引用符でなければなりません。 Pythonのような引用符型は使用できません。あなたが実際に持っているのは、JSONではなくオブジェクトのPython表現です。 '' json() ''メソッドが既にあなたのためにそれを行ったので、あなた自身でそれを解読する必要はありません。既にPythonオブジェクトであったものに '' str() ''を使うので、Python表現になります。 –
'issue = json.loads(str(issue_payload))'という行を削除し、 'issue_payload'を使います。それはすでに辞書です。 –