调用包含API调用的类和函数时没有返回值

时间:2015-10-04 17:57:36

标签: python json api class

我使用GitHub的Python库调用Blockchain.INFO的API:https://github.com/gowness/pyblockchain

我的代码可以在下面看到,当我运行代码时,我没有返回值。我没有关于课程等方面的最佳知识,但我已经简要地阅读过,这里出了什么问题?

import requests
import urllib
import json
from os.path import expanduser
import configparser

class Wallet: 
    guid        = 'g'
    isAccount   = 0
    isKey       = 0
    password1   = 'x'
    password2   = 'y'
    url         = ''

    def __init__(self, guid = 'g', password1 = 'x', password2 = 'y'):

        if guid.count('-') > 0:
            self.isAccount = 1
            if password1 == '': # wallet guid's contain - 
                raise ValueError('No password with guid.')
        else:
            self.isKey = 1


        self.guid = guid
        self.url = 'https://blockchain.info/merchant/' + guid + '/'

        self.password1 = password1
        self.password2 = password2

    def Call(self, method, data = {}):
        if self.password1 != '':
            data['password'] = self.password1 
        if self.password2 != '':
            data['second_password'] = self.password2

        response = requests.post(self.url + method,params=data)

        json = response.json()
        if 'error' in json:
            raise RuntimeError('ERROR: ' + json['error'])

        return json


    def GetBalance(self):
        response = self.Call('balance')
        return response['balance']

Wallet().GetBalance()

1 个答案:

答案 0 :(得分:1)

由于我无法针对您的网址成功进行POST调用,因此我稍微更改了您的代码,以便它不会查找错误'在json中,看看你的Count({FieldToCount},{GroupField1})方法中发生了什么。

现在,知道通过进行失败的调用,json响应将是:

GetBalance

因此,在{u'error': u'Unknown Key Format'} 方法中,我只是在

之后添加了一个print语句
GetBalance

我按预期得到了一个有效的json。

这一切都要说。尝试这样做,看看你得到了什么:

response = self.Call('balance')

根据回复的响应,这可能表示您没有为您尝试制作的POST方法向服务器提供适当的有效负载?