0

これはおそらくばかげた質問ですが、私はこれについてあまりにも長い間頭を悩ませてきました.

django で Facepy/social-auth を使用して Facebook GraphAPI から写真情報をリクエストしようとしています。

ビューには次のコードがありますが、結果の json を python オブジェクトに変換するにはどうすればよいですか?

instance = UserSocialAuth.objects.filter(user=request.user).filter(provider='facebook')
graph = GraphAPI(instance[0].extra_data['access_token'])
p=graph.get('me/photos')

Facepy は非常に優れているように見えますが、ドキュメンテーションはせいぜい貧弱です。

すべての提案に感謝します。

4

2 に答える 2

2

Facepy は、JSON ではなく、ネイティブの Python オブジェクトを返します。

response = graph.get('me/photos')

for photo in response['data']:
    print photo['source']
于 2012-08-28T08:08:57.950 に答える
0

simplejsonの負荷関数を使用できます

from django.utils import simplejson
simplejson.loads(args)

s(strまたはJSONunicodeドキュメントを含むインスタンス) を Python オブジェクトに逆シリアル化します。

If ``s`` is a ``str`` instance and is encoded with an ASCII based encoding
other than utf-8 (e.g. latin-1) then an appropriate ``encoding`` name
must be specified. Encodings that are not ASCII based (such as UCS-2)
are not allowed and should be decoded to ``unicode`` first.

``object_hook`` is an optional function that will be called with the
result of any object literal decode (a ``dict``). The return value of
``object_hook`` will be used instead of the ``dict``. This feature
can be used to implement custom decoders (e.g. JSON-RPC class hinting).

``parse_float``, if specified, will be called with the string
of every JSON float to be decoded. By default this is equivalent to
float(num_str). This can be used to use another datatype or parser
for JSON floats (e.g. decimal.Decimal).

``parse_int``, if specified, will be called with the string
of every JSON int to be decoded. By default this is equivalent to
int(num_str). This can be used to use another datatype or parser
for JSON integers (e.g. float).

``parse_constant``, if specified, will be called with one of the
following strings: -Infinity, Infinity, NaN, null, true, false.
This can be used to raise an exception if invalid JSON numbers
are encountered.

To use a custom ``JSONDecoder`` subclass, specify it with the ``cls``
kwarg.
于 2012-07-14T08:13:15.407 に答える