2016-06-28 5 views
0

私はすでに私のURLを取得しており、このURLにブラウザでアクセスしています。それはあなたにjsonのデータ形式を与えますが、python3の組み込み関数を使用するとエラーになります。get_reportは私に<function get_report at 0x103362840>を与えます。 jsonデータを返すためにpython3の組み込み関数を使用するにはどうすればよいですか?ページ上の生のコードを入れたときにpython3.5.1はjsonデータをURLから解析できません

はここで何かする前に私のコード

def get_report(report,api_key): 
    uri = urllib.parse.urljoin(API_ENDPOINT, report) 
    uri += "?api_key = %s" % API_KEY 

    request = urllib.request.Request(uri) 
    response = urllib.request.urlopen(request) 
    data = response.read().decode('utf-8') 
    print (data) 
    return data 
try: 
    data = get_report("azure_cost", API_KEY) 
+0

あなたにエラーが発生した場合、返された実際のエラーを教えてください。問題を明確にし、それを脅かすことは簡単になります。 – Artemis

答えて

2

で、{}ボタンを使用するか、あなたのコードの各行の前に4つのスペースを入れてください。それは全体を明確にするのに役立ちます。

フォーマットされた有効なJSONを含む文字列を受け取った場合は、組み込みのjsonモジュールを使用して解析できます。

それをすることができ、このモジュールを使用してJSON文字列を解析するために使用することができ、簡単なコードスニペットを:

to_parse = "{'foo': 'bar', 'test': 'result'}" 

from json import loads 
parsed = loads(to_parse) 
print(parsed['foo']) # will print "bar", the value stored below the 'foo' key. 

それはあなたがすることができますことを、変数にロードされたリスト/辞書を格納します後で使用してください。

EDIT:

あなたの最近の更新を見ることによって、私はあなたが何かを印刷しようと、それはあなたにこの結果を与えた場合、あなたは、まだ知らなかった場合は、その正確な必要があります:

<function "any_function" at 0x103362840> 

をこれは、実際に印刷されたものが実際にメモリ内のアドレス0x103362840に格納されていることを意味します(この部分については心配する必要はありません)。ビット高):

代わりの

>>> print(variable.any_function()) 

:あなたのような何かをしようとすると210

さて、

>>> print(variable.any_function) 

あなたは関数が返されたという結果が出力されます。ここでget_report関数を実行して結果を返し、結果をコンソールに出力するので、get_reportが実際に必要なコンテンツを返すと、結果はコンソールに出力されます。

関連する問題