将花括号解析为json?

时间:2020-09-10 00:16:57

标签: python json api parsing

我想用python解析此json:

[
    {
        "casa": {
            "compra": "74,050",
            "venta": "79,050",
            "agencia": "349",
            "nombre": "Dolar Oficial",
            "variacion": "0,030",
            "ventaCero": "TRUE",
            "decimales": "3"
        }
    },
    {
        "casa": {
            "compra": "127,000",
            "venta": "131,000",
            "agencia": "310",
            "nombre": "Dolar Blue",
            "variacion": "0",
            "ventaCero": "TRUE",
            "decimales": "3"
        }
    },
    {
        "casa": {
            "compra": "No Cotiza",
            "venta": "0",
            "agencia": "311",
            "nombre": "Dolar Soja",
            "variacion": "0",
            "ventaCero": "TRUE",
            "decimales": "3"
        }
    },
    {
        "casa": {
            "compra": "119,550",
            "venta": "120,190",
            "agencia": "312",
            "nombre": "Dolar Contado con Liqui",
            "variacion": "0,730",
            "ventaCero": "TRUE",
            "decimales": "3"
        }
    },
    {
        "casa": {
            "compra": "121,760",
            "venta": "118,280",
            "agencia": "313",
            "nombre": "Dolar Bolsa",
            "variacion": "4,560",
            "ventaCero": "TRUE",
            "decimales": "3"
        }
    },
    {
        "casa": {
            "compra": "9.852,070",
            "venta": "10.251,516",
            "agencia": "399",
            "nombre": "Bitcoin",
            "variacion": "-0,24",
            "ventaCero": "TRUE",
            "decimales": "3"
        }
    },
    {
        "casa": {
            "nombre": "Dolar turista",
            "compra": "No Cotiza",
            "venta": "102,77",
            "agencia": "406",
            "variacion": "0,03"
        }
    },
    {
        "casa": {
            "compra": "72,56",
            "venta": "77,50",
            "agencia": "302",
            "nombre": "Dolar",
            "decimales": "3"
        }
    },
    {
        "casa": {
            "nombre": "Argentina",
            "compra": "2.149,00",
            "venta": "-0,05",
            "mejor_compra": "True",
            "mejor_venta": "False",
            "fecha": "05\\/05\\/15",
            "recorrido": "16:30",
            "afluencia": {},
            "agencia": "141",
            "observaciones": {}
        }
    }
]

此json在大括号内也有大括号。例如,如何才能在第一个"casa"内部和第一个"casa"内部访问"compra",并返回其值?

我这样做了

dolarsi = requests.get('https://www.dolarsi.com/api/api.php?type=valoresprincipales').text
dolarvalue = json.loads(dolarsi)
for value in dolarvalue[0]:
    print(value)

1 个答案:

答案 0 :(得分:0)

dolarvalue中,有一个字典列表,其键是冗余信息,因为它们是相等的(casa),并且其值也是字典,因此,由于方式的原因,您还有一个嵌套字典的列表。这个JSON是结构化的,这可能很棘手。

尝试运行此命令以使其可视化:

import requests
import json

dolarsi = requests.get('https://www.dolarsi.com/api/api.php?type=valoresprincipales').text
dolarvalue = json.loads(dolarsi)
print("\n-----------------\n")
print(dolarvalue)
print("\n-----------------\n")
for i in dolarvalue:
    for (key, value) in i.items():
        for (key2, value2) in value.items():
            print(f"{key} : {key2} : {value2}")
        print("\n")

我无法为您提供具体的解决方案,因为您没有指定所需的内容,但我希望这种遍历此结构的方式可以为您提供帮助。 尝试变得更加精确,并提供更多有关将来遇到的问题时要达到的目标的详细信息。

如果此答案对您有帮助,请将该问题标记为已解决