要求されたサイトが明らかにJSONである場合、JSONオブジェクトをデコードできませんでした

ホプキンス

私はlivecoin.netのポートフォリオについて更新する小さなPythonアプリを書いています。私はlivecoin.netAPIとcoinmarketcap.comAPIを使用しています。coinmarketcap.com API(https://api.coinmarketcap.com/v1/ticker/bitcoin/)にアクセスすると明らかにJSONであるページをリクエストすると、次のエラーが発生します。

Traceback (most recent call last):
  File "C:/Users/other/Desktop/livecoin.py", line 89, in <module>
    cmcData = getCoinMarketCapData(balances)
  File "C:/Users/other/Desktop/livecoin.py", line 22, in getCoinMarketCapData
    cmcData = json.load(cmcResponse)
  File "C:\Python27\lib\json\__init__.py", line 291, in load
    **kw)
  File "C:\Python27\lib\json\__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

私が取得しているページは、前に述べたように非常に明確にJSONであるため、なぜこれが発生しているのかまったくわかりません。誰かが私を助けてくれますか?

これがチャリティーコード作業のサイトではないことはよく知っていますが、私は非常に困惑しており、これが私の計画Zでした...あなたが私のためにコードを書く必要さえないのを手伝ってくれるなら、私が間違っているところを私に指摘してください。ありがとう

これが私のコードです:

# -*- coding: utf-8 -*-
import httplib
import urllib
import json
import hashlib
import hmac
from collections import OrderedDict

def getCoinMarketCapData(currencies):
    returns = {}

    cmcUrl = "api.coinmarketcap.com"
    cmcMethod = "/v1/ticker/"

    conn = httplib.HTTPSConnection(cmcUrl)

    for item in currencies:
        print item['name'].split(" ")[0].lower();
        print cmcMethod+(item['name'].split(" ")[0].lower())
        conn.request("GET", cmcMethod+(item['name'].split(" ")[0].lower()))
        cmcResponse = conn.getresponse()
        cmcData = json.load(cmcResponse)
        c = {"name":item['name'].split(" ")[0], "currency":item['symbol'],     "price_usd":cmcData[0]['price_usd'], "price_btc":cmcData[0]['price_btc'], "d1h":cmcData[0]['percent_change_1h'], "d24h":cmcData[0]['percent_change_24h'], "d7d":cmcData[0]['percent_change_7d'], "value":0.0}
    returns[item['symbol']] = c

    conn.close()

    return returns


def getData(dataDict, method, server, key, secret):
    encoded_data = urllib.urlencode(dataDict)

    sign = hmac.new(secret, msg=encoded_data,     digestmod=hashlib.sha256).hexdigest().upper()

    headers = {"Api-key":key, "Sign":sign}

    conn = httplib.HTTPSConnection(server)
    conn.request("GET", method + '?' + encoded_data, '', headers)

    response = conn.getresponse()
    data = json.load(response)
    conn.close()

    return data

def outputLine(key, value, prefix, suffix):
    spaces = ""
    pslen = len(prefix) + len(suffix)
    key = key.upper()
    key = " " + key + ": "
    keylen = len(key)
    x = 35-keylen-pslen
    for count in range(x-len(str(value))):
        spaces += " "
    return key + prefix + value + suffix + spaces

server = "api.livecoin.net"
balancesMethod = "/payment/balances"
coinInfoMethod = "/info/coinInfo"
api_key = "gEuyw7k4WvAhdXUmG36zHDksDZGR3fvq"
secret_key = "D4aTtN6tPxBqqDG24PFZ1238CMektp33"
responses = []
names = []
balances = []

namesJSON = getData([], coinInfoMethod, server, api_key, secret_key)['info']
for name in namesJSON:
    names.append({"name":name['name'], "symbol":name['symbol']})

data = OrderedDict([])
d = getData(data, balancesMethod, server, api_key, secret_key)
responses.append(d)

for currency in responses[0]:
    if currency['value'] > 0.0 and currency['type'] == 'total':
        for name in names:
            if name['symbol'] == currency['currency']:
                currency['name'] = name['name']
        balances.append(currency)

ownedCoins = []

for balance in balances:
    ownedCoins.append({"name":balance['name'], "symbol":balance['currency']})

print ownedCoins

cmcData = getCoinMarketCapData(balances)

for balance in balances:
    try:
        cmcData[balance['currency']]['value'] = balance['value']
    except:
    continue

for coin in ownedCoins:
    print coin
    item = cmcData[str(coin)]
    v = item['value']
    v = "%f" % (v)

    print "+-----------------------------------+"
    print "|" + outputLine('currency', item['currency'], "", "") + "|"
    print "|" + outputLine('amount owned', v, "", "") + "|"
    print "|" + outputLine('price in usd', item['price_usd'], "$", "") + "|"
    print "|" + outputLine('price in btc', item['price_btc'], u'\u20BF', "") + "|"
    print "|" + outputLine('% change 1h', item['d1h'], "", "%") + "|"
    print "|" + outputLine('% change 24h', item['d24h'], "", "%") + "|"
    print "|" + outputLine('% change 7d', item['d7d'], "", "%") + "|"
    print "+-----------------------------------+"
    print "\n"
Omri Bahat Treidel

次のコードを使用してjsonを読み込むことができました。

import urllib, json
url = "https://api.coinmarketcap.com/v1/ticker/bitcoin/"
response = urllib.urlopen(url)
data = json.loads(response.read())

json.load代わりに使用しようとするとjson.loads(あなたとは異なる)エラーが発生しましたが、何が問題になっているのかについてのヒントが得られる場合があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

有効なjsonがファイルに存在する場合でも、JSONオブジェクトをデコードできませんでした

分類Dev

データベース呼び出しが行われたときにコントローラーからの応答がJSONオブジェクトを返す場合、view.ejsにJSONオブジェクト値を出力できません

分類Dev

json ファイルを解析できません。「JSON オブジェクトをデコードできませんでした」と表示されます。

分類Dev

識別子に空白がある場合、JSONオブジェクトから文字列値を取得できませんでしたandroid

分類Dev

JSONオブジェクトをデコードできませんでしたが、入力はJSON形式です

分類Dev

$ typeがオブジェクトの最初のプロパティでない場合、JSONの型メタデータは明らかに尊重されません

分類Dev

Python Jsonエラー:ValueError:JSONオブジェクトをデコードできませんでした

分類Dev

Python関数、json.loads():JSONオブジェクトをデコードできませんでした

分類Dev

デシリアライズされたJsonオブジェクトをクラスモデルにバインドできませんでした

分類Dev

ValueError:期待されるオブジェクトまたは値<-> jsonファイルをパンダデータフレームにロードできないか、csvに変換できません。どちらでも十分です。

分類Dev

「JSONオブジェクトをデコードできませんでした」よりも優れたエラーメッセージを表示する

分類Dev

「JSONオブジェクトをデコードできませんでした」よりも優れたエラーメッセージを表示する

分類Dev

Pythonでは、ValueError:JSONオブジェクトをデコードできませんでした

分類Dev

tastypieでJSONオブジェクトをデコードできませんでした

分類Dev

ValueError:Pythonを使用してJSONオブジェクトをデコードできませんでした

分類Dev

SQLyogジオメトリフィールドのあるテーブルのコピーが失敗し、GEOMETRYフィールドに送信したデータからジオメトリオブジェクトを取得できません

分類Dev

Python 2.7 IntEnum:JSONオブジェクトをデコードできませんでした

分類Dev

ValueError:JSONオブジェクトをデコードできませんでした-Django request.body

分類Dev

Python:JSONオブジェクトをデコードできませんでした

分類Dev

Python ValueError:JSONオブジェクトをデコードできませんでした(断続的)

分類Dev

JsonException:サポートされていない可能性のあるオブジェクトサイクルが検出されました。これは、サイクルが原因であるか、オブジェクトの深さがより大きい場合に発生する可能性があります。

分類Dev

ネストされたJSONオブジェクトに入ることができませんが、たまにしか入りません

分類Dev

解析されたJSONからオブジェクトの詳細をログに記録できませんか?

分類Dev

jsonURLに対して「JSONオブジェクトをデコードできませんでした」を取得する

分類Dev

用語:OOPでは、ルックアップテーブルまたはゲートウェイからの「結合された」データを使用するオブジェクトまたはレコードがある場合、それは何と呼ばれますか?

分類Dev

SOAPサーバーは要求を処理できませんでした。--->オブジェクト参照がオブジェクトのインスタンスに設定されていません

分類Dev

ドットまたはブラケット表記を使用して、フェッチ後に状態に保存されたjson / javascriptオブジェクトのキーまたはデータにアクセスすることはできません

分類Dev

Swiftでターゲットオブジェクトを存続させる必要がある場合、「変数は使用されませんでした」という警告を抑制するにはどうすればよいですか?

分類Dev

同じクラスから複数のオブジェクトをインスタンス化する場合はコードは実行されませんが、同じコードで重複するクラスからオブジェクトをインスタンス化する場合は機能します

Related 関連記事

  1. 1

    有効なjsonがファイルに存在する場合でも、JSONオブジェクトをデコードできませんでした

  2. 2

    データベース呼び出しが行われたときにコントローラーからの応答がJSONオブジェクトを返す場合、view.ejsにJSONオブジェクト値を出力できません

  3. 3

    json ファイルを解析できません。「JSON オブジェクトをデコードできませんでした」と表示されます。

  4. 4

    識別子に空白がある場合、JSONオブジェクトから文字列値を取得できませんでしたandroid

  5. 5

    JSONオブジェクトをデコードできませんでしたが、入力はJSON形式です

  6. 6

    $ typeがオブジェクトの最初のプロパティでない場合、JSONの型メタデータは明らかに尊重されません

  7. 7

    Python Jsonエラー:ValueError:JSONオブジェクトをデコードできませんでした

  8. 8

    Python関数、json.loads():JSONオブジェクトをデコードできませんでした

  9. 9

    デシリアライズされたJsonオブジェクトをクラスモデルにバインドできませんでした

  10. 10

    ValueError:期待されるオブジェクトまたは値<-> jsonファイルをパンダデータフレームにロードできないか、csvに変換できません。どちらでも十分です。

  11. 11

    「JSONオブジェクトをデコードできませんでした」よりも優れたエラーメッセージを表示する

  12. 12

    「JSONオブジェクトをデコードできませんでした」よりも優れたエラーメッセージを表示する

  13. 13

    Pythonでは、ValueError:JSONオブジェクトをデコードできませんでした

  14. 14

    tastypieでJSONオブジェクトをデコードできませんでした

  15. 15

    ValueError:Pythonを使用してJSONオブジェクトをデコードできませんでした

  16. 16

    SQLyogジオメトリフィールドのあるテーブルのコピーが失敗し、GEOMETRYフィールドに送信したデータからジオメトリオブジェクトを取得できません

  17. 17

    Python 2.7 IntEnum:JSONオブジェクトをデコードできませんでした

  18. 18

    ValueError:JSONオブジェクトをデコードできませんでした-Django request.body

  19. 19

    Python:JSONオブジェクトをデコードできませんでした

  20. 20

    Python ValueError:JSONオブジェクトをデコードできませんでした(断続的)

  21. 21

    JsonException:サポートされていない可能性のあるオブジェクトサイクルが検出されました。これは、サイクルが原因であるか、オブジェクトの深さがより大きい場合に発生する可能性があります。

  22. 22

    ネストされたJSONオブジェクトに入ることができませんが、たまにしか入りません

  23. 23

    解析されたJSONからオブジェクトの詳細をログに記録できませんか?

  24. 24

    jsonURLに対して「JSONオブジェクトをデコードできませんでした」を取得する

  25. 25

    用語:OOPでは、ルックアップテーブルまたはゲートウェイからの「結合された」データを使用するオブジェクトまたはレコードがある場合、それは何と呼ばれますか?

  26. 26

    SOAPサーバーは要求を処理できませんでした。--->オブジェクト参照がオブジェクトのインスタンスに設定されていません

  27. 27

    ドットまたはブラケット表記を使用して、フェッチ後に状態に保存されたjson / javascriptオブジェクトのキーまたはデータにアクセスすることはできません

  28. 28

    Swiftでターゲットオブジェクトを存続させる必要がある場合、「変数は使用されませんでした」という警告を抑制するにはどうすればよいですか?

  29. 29

    同じクラスから複数のオブジェクトをインスタンス化する場合はコードは実行されませんが、同じコードで重複するクラスからオブジェクトをインスタンス化する場合は機能します

ホットタグ

アーカイブ