在Python 3.0中使用json对象数组(包含嵌套数据/树结构中的数据)在字典中按摩数据

时间:2019-03-26 19:18:35

标签: python arrays json

我需要将“地址”的值存储在变量中,以备后用。 “地址”值位于json.dump输出的内部。

从我搜集到的一些类似问题来看,我需要在每个值之间进行迭代以访问ScriptPubKey(字典)。由于我只需要几个小时就可以使用Python,并且没有足够的编程知识,所以我确信自己缺少一些简单的东西,或者完全误解了手头的任务。

    for x in response['result']['vout']:
    for y in x:
    print(y)

所以这是我遇到问题的程序的一部分。

###Function
def gettranshash(transhashen):
    payload = {
    "method": "getrawtransaction",
    "params": [transhashen],
    }
    response = requests.post(url, data=json.dumps(payload), headers=headers).json() 
    response = response['result']
    payload = {
    "method": "decoderawtransaction",
    "params": [response],
    }
    response = requests.post(url, data=json.dumps(payload), headers=headers).json()
    return response

###How I access the function in my program
        transaktionshash = input("write transactionhash for a block: ")
        response = gettranshash(transaktionshash)
        print("Blocket: ", response['result']['hash'])
###Missing the address output :(
        print("Blocket: ", response['result']['vout'])

响应结果:

{'result': {'txid': 
'4d879b24d65dd418a8e806ed69df7f170022e89666590a7b08e0095009865a5b', 
'hash': 
'4d879b24d65dd418a8e806ed69df7f170022e89666590a7b08e0095009865a5b', 
'version': 1, 'size': 87, 'vsize': 87, 'locktime': 0, 'vin': 
[{'coinbase': '0163', 'sequence': 4294967295}], 'vout': [{'value': 50.0, 
'n': 0, 'scriptPubKey': {'asm': 'OP_DUP OP_HASH160 
071e31b8289aa9d80b970230cb1b8b76466f2ec4 OP_EQUALVERIFY OP_CHECKSIG', 
'hex': '76a914071e31b8289aa9d80b970230cb1b8b76466f2ec488ac', 'reqSigs': 
1, 'type': 'pubkeyhash', 'addresses': 
['1eduGsrvBJcfyTMij2rYXk9viiVV78PNq']}}]}, 'error': None, 'id': None}

这是response ['result'] ['vout']的结果:

[{'value': 50.0, 'n': 0, 'scriptPubKey': {'asm': 'OP_DUP OP_HASH160 
071e31b8289aa9d80b970230cb1b8b76466f2ec4 OP_EQUALVERIFY OP_CHECKSIG', 
'hex': '76a914071e31b8289aa9d80b970230cb1b8b76466f2ec488ac', 'reqSigs': 
1, 
'type': 'pubkeyhash', 'addresses': 
['1eduGsrvBJcfyTMij2rYXk9viiVV78PNq']}}]

这来自文档:

"vout" : [ (array of json objects) 
{ 
"value" : x.xxx, (numeric) The value in BTC 
"n" : n, (numeric) index 
"scriptPubKey" : { (json object) 
"asm" : "asm", (string) the asm 
"hex" : "hex", (string) the hex 
"reqSigs" : n, (numeric) The required sigs 
"type" : "pubkeyhash", (string) The type, eg 
'pubkeyhash' 
"addresses" : [ (json array of string) 
"address" (string) bitcoin address 
,... 
] 
} 
} 
,... 
], 

基本上,我需要访问“地址”值,以便将其用作其他函数的迭代输入。

非常感谢您提供任何可能的提示,并让我知道是否需要添加其他信息或澄清任何内容:)

0 个答案:

没有答案