2017-05-12 45 views
-1

我一直试图在半小时左右解决这个问题,但是我找不到明确的答案。尝试从Python中的网站中提取JSON时发生错误

Picture with error can be found here.

它应该返回0,但返回的:

Traceback (most recent call last): 
    File "/home/lolmaker2002/PycharmProjects/kristwallet/krist.py", line 18, in <module> 
    print(str(balance(addr))) 
    File "/home/lolmaker2002/PycharmProjects/kristwallet/krist.py", line 13, in balance 
    grabbed = json.loads(str(urllib.request.urlopen(node + "/addresses/" + iaddr))) 
    File "/usr/lib/python3.6/json/__init__.py", line 354, in loads 
    return _default_decoder.decode(s) 
    File "/usr/lib/python3.6/json/decoder.py", line 339, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode 
    raise JSONDecodeError("Expecting value", s, err.value) from None 
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 

我有一些代码在这里,我正努力抓住从一些(这是JSON第一,但我想解析)

用于进一步的信息,在下面的代码节点是http://krist.ceriat.net

def balance(iaddr): 
grabbed = json.loads(str(urllib.request.urlopen(node + "/addresses/" + iaddr))) 
print(grabbed["address"][1]["balance"]) 
return grabbed 

,我通过它与下面的发送地址:

addr = input('Enter address: ') 
print(str(balance(addr))) 

另外,如果我通过网络浏览器做一个实际的东西,我得到这样的:

{"ok":true,"address":{"address":"k5n6r931i1","balance":0,"totalin":903,"totalout":10869,"firstseen":"2016-12-02T21:10:53.000Z"}

+2

你没有说错误是什么。这很重要。 – Carcigenicate

+0

我添加了一个错误和我的完整代码的图片。 –

+1

切勿张贴代码或错误的图片。始终以文字形式发布一切。 – Carcigenicate

回答

0

你错过了read方法来读取urllib.HTTPResponse对象的内容。

def balance(iaddr): 
    content = urllib.request.urlopen(node + "/addresses/" + iaddr).read() 
    grabbed = json.loads(content) 
    print(grabbed["address"]["balance"]) 
    return grabbed 

编辑:

阵列中的JSON在Python列表。所以,如果你想用JSON解析数组,你可以这样做:

content = urllib.request.urlopen(node + "/addresses").read() 
data = json.loads(content) 
for entry in data['addresses']: 
    print "address: {} - balance: {}".format(entry['address'], entry['balance'] 
+0

仍然不起作用,我仍然得到相同的错误([哈斯滨链接到错误](https://hastebin.com/esojuwuzop.sql)) –

+0

这工作!谢谢,它返回正确的值,我没有看到任何问题,尽管如此,我仍然不知道如何解析JSON中的数组,因为我也需要使用它。 –

+0

我更新了我的答案,向您展示了如何解析JSON数组 –

相关问题