首页 > 解决方案 > 无效的区块链 Json 数据

问题描述

我有一个巨大的文本文件,其中包含我想解析的区块链数据,以便我可以从我需要的字段中获取信息。我试图将其转换为 json,但它说无效。经过一番思考,我意识到这不是最好的方法,因为我只想要 2 或 3 个字段。有人可以帮我找到从文件中提取数据的最佳方法吗?下面有一个例子。我只想要 txid 大小和散列。

{
    "txid": "254d5cc8d2b1889a2cb45f7e3dca8ed53a3fcfa32e8b9eac5f68c4f09e7af7bd",
    "hash": "a8e125eb6d7ab883177d8ab228a3d09c1733d1ca49b7b2dff4b057eeb80ff9be",
    "version": 2,
    "size": 171,
    "vsize": 144,
    "weight": 576,
    "locktime": 0,
    "vin": [
        {
        "coinbase": "02ee170101",
        "sequence": 4294967295
        }
    ],
    "vout": [
            {
            "value": 12.00000000,
            "n": 0,
            "scriptPubKey": {
                "asm": "OP_HASH160 cd5b833dd43bc60b8c28c4065af670f283a203ff OP_EQUAL",
                "hex": "a914cd5b833dd43bc60b8c28c4065af670f283a203ff87",
                "reqSigs": 1,
                "type": "scripthash",
                "addresses": [
                "2NBy4928yJakYBFQuXxXBwXjsLCRWgzyiGm"
                ]
            }
        },
        {
        "value": 5.00000000,
        "n": 1,
        "scriptPubKey": {
                "asm": "OP_HASH160 cd5b833dd43bc60b8c28c4065af670f283a203ff OP_EQUAL",
                "hex": "a914cd5b833dd43bc60b8c28c4065af670f283a203ff87",
                "reqSigs": 1,
                "type": "scripthash",
                "addresses": [
                "2NBy4928yJakYBFQuXxXBwXjsLCRWgzyiGm"
                ]
            }
        }
    ],
    "hex":
    "020000000001010000000000000000000000000000000000000000000000000000000000000000
    ffffffff0502ee170101ffffffff02000000000000000017a914cd5b833dd43bc60b8c28c4065af670f283a
    203ff870000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c69068979996
    2b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000
    0000000000000000",
    "blockhash": "0f84abb78891a4b9e8bc9637ec5fb8b4962c7fe46092fae99e9d69373bf7812a",
    "confirmations": 1,
    "time": 1590830080,
    "blocktime": 1590830080
}

谢谢

标签: python-3.x

解决方案


@andrewjames 是正确的。如果您无法控制 JSON 文件,则只需删除换行符即可解决该错误:

parsed = json.loads(jsonText.replace("\n", ""))

然后你可以像普通字典一样访问你想要的字段:

print(parsed['txid'])

推荐阅读