簡體   English   中英

如何在復雜的 JSON object 中找到特定的 JSON 值與 ZA7F5F35426B927411FC9231B5Z6

[英]How to find specific JSON value in complex JSON object with Python

您好我有一個復雜的 JSON object

[
    {
      "InvoiceNumberPrefix": "xx-",
      "InvoiceNumber": 33333,
      "OrderID": 905339301,
      "CustomerID": 44334555,
      "OrderDate": "2020-07-17T12:58:43",
      "OrderStatusID": 1,
      "LastUpdate": "2020-07-17T13:02:12",
      "UserID": "none",
      "SalesPerson": "none",
      "AlternateOrderID": "",
      "OrderType": "Repeat",
      "PaymentTokenID": 0,
      "BillingFirstName": "John",
      "BillingLastName": "Doe",
      "BillingCompany": "3dcart",
      "BillingAddress": "1234 Test St.",
      "BillingAddress2": "",
      "BillingCity": "Tamarac",
      "BillingState": "FL",
      "BillingZipCode": "33321",
      "BillingCountry": "US",
      "BillingPhoneNumber": "33444444",
      "BillingOnLinePayment": false,
      "BillingPaymentMethodID": "177"}
]

我正在嘗試在 object 中找到特定值。 最初我只能指定密鑰的位置,但問題是 object 可能會因不同的密鑰位置而變得復雜。 有沒有辦法找到一個特定的值? 例如,如果我想查看 JSON object 中是否有“33333”,那么 go 的最佳方法是什么?

假設您已將 JSON 解析為 Python 中的變量data (字典列表),您可以執行以下操作:

target = '33333'
for i, d in enumerate(data, 1):
    for k, v in d.values():
        if v == target:
            print(f'found target {target} associated with key {k} on dictionary no {i}.'

如果您只想檢查一個變量是否在轉換后的 json 字典的值中,那么您可以執行以下操作:

import json

raw_json = """[{ "InvoiceNumberPrefix": "xx-", 
"InvoiceNumber": 33333, "OrderID": 905339301, 
"CustomerID": 44334555, "OrderDate": "2020-07- 
17T12:58:43", "OrderStatusID": 1, "LastUpdate": "2020-07- 
17T13:02:12", "UserID": "none", "SalesPerson": "none", 
"AlternateOrderID": "", "OrderType": "Repeat", 
"PaymentTokenID": 0, "BillingFirstName": "John", 
"BillingLastName": "Doe", "BillingCompany": "3dcart", 
"BillingAddress": "1234 Test St.", "BillingAddress2": "", 
"BillingCity": "Tamarac", "BillingState": "FL", 
"BillingZipCode": "33321", "BillingCountry": "US", 
"BillingPhoneNumber": "33444444", 
"BillingOnLinePayment": false, "BillingPaymentMethodID": 
"177"} ]"""

myjson = json.loads(raw_json)

def check4value(json_dict, value):
    if value in json_dict.values():
        return True
    else:
        return False

print(check4value(myjson[0], 33333))
#True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM