繁体   English   中英

通过 JSON 文件中的 Python 访问字典中的列表

[英]Accessing list within a dictionary via Python from a JSON file

我是 Python 的新手,需要一些帮助。 我正在尝试使用 Python 从我的 JSON 文件中读取并获取字典中列表的值。

一旦我将 JSON 读入我的程序,我就会:

request body = {
  "providerName": "ProviderNameXYZ",
  "rateRequestPayments": [
    {
      "amount": 128.0,
      "creditorProfileId": "7539903942457444658",
      "debtorProfileId": "2072612712266192555",
      "paymentMethodId": "2646780961603748694016",
      "currency": "EUR",
      "userReference": "INVALID user ref automation single",
      "reconciliationId": "343546578753349"
    },
    {
      "amount": 129.0,
      "creditorProfileId": "7539903942457444658",
      "debtorProfileId": "2072612712266192555",
      "paymentMethodId": "2646780961603748694016",
      "currency": "EUR",
      "userReference": "INVALID user ref automation single",
      "reconciliationId": "343546578753340"
    }
  ]
}
  1. 我现在希望能够获取任何特定键的值。 我试过通过几种途径访问它:
  • rateRequestPayments[0].amount
  • rateRequestPayments()[0].amount
  • for k, v in request_body.rateRequestPayments(): print(k, v)
  • for each in request_body.rateRequestPayments: print(each('amount'))
  • values = eval(request_body['rateRequestPayments']) print(values[0])所有这些都以错误告终。 根据下面的第二条评论: request_body['rateRequestPayments'][0]['amount']这行得通!
  1. 我还希望能够从 request_body 中删除整个键值对 ("amount": 128.0,)。 request_body['rateRequestPayments'][0]['amount']不适用于此。 不知道如何引用这个。

我知道我遗漏了一些简单的东西,但我不确定它是什么。 任何帮助将不胜感激。

Python 非常适合数据科学,并且具有许多适合该工作的功能。 这些功能之一是在数据集中查找数据。 body['rateRequestPayments'][<!WHICH DATA SET YOU WANT TO ACCESS>][<!VALUE YOU WANT TO FIND>]

首先,您需要在requestsbody之间添加一个下划线,这样它的requests_body = {...}

要访问键值对:

requests_body["rateRequestPayments"] #to access the list of two dicts
requests_body["rateRequestPayments"][0] #to access the individual dicts by index
requests_body["rateRequestPayments"][0]["amount"] #to access the value of a particular key (in this case "amount" is the key)

要删除键值对,只需使用del语句:

del requests_body["rateRequestPayments"][0]["amount"]

这将删除变量requests_body中的键值对,因此再次尝试访问该键将引发KeyError错误。

要访问删除键值对,请使用.pop()

value = requests_body["rateRequestPayments"][0].pop("amount")
#value is now 128.0 and the key-value pair is deleted

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM