51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

在Python中查找JSON中的特定单词。

英文:

Finding specific words in JSON using python

问题 {#heading}

        with open("signal_procedure.json", "r") as file:
            analogOut.procedure = json.load(file)
            print(type(analogOut.procedure))
        # 获取测试用例
        listof_cases = []
        index = 0
        for index in analogOut.procedure.keys():
            listof_cases.insert(len(listof_cases), index)
        # 获取测试用例的内容
        listof_content = []
        index = 0
        for index in analogOut.procedure.values():
            listof_content.insert(len(listof_content), index)

        index = 0
        x = 0
        voltage_values = []
        for x in listof_content:
            if "Applied Voltage" in x:
                voltage_values.index(len(voltage_values), x.values())
        print(voltage_values)

Note: The code you provided contains HTML entities like " which represent double quotes ("), and these entities should be replaced with actual double quotes for the code to work correctly. I've left them as is in the translated code, but you may need to replace them in your actual code. 英文:

I am writing automation script that parses a word document. I turn the keywords and their values into JSON object. But I can't get the specific values from there. I want to get applied voltage values from each and put them into a list.

Here is my JSON object: (just the beginning of it there are 19 test cases)

{
   "Test Case 1": [
      {
         "Test Case": "Test Case 1 : SENSOR_VCC Sinyal İşlemleri  ",
         "Test Step": "Test Step 1",
         "Sub_Tests": [
            {
               "Port": "J7-9",
               "Applied Voltage": "4",
               "Expected Result": 5.0,
               "Tolerance": 0.3
            },
            {
               "Port": "J7-9",
               "Applied Voltage": "3.3",
               "Expected Result": 4.125,
               "Tolerance": 0.3
            },
            {
               "Port": "J7-9",
               "Applied Voltage": "0",
               "Expected Result": 0.0,
               "Tolerance": 0.3
            }
         ]
      }
   ],
   "Test Case 2": [
      {
         "Test Case": "Test Case 2 : REF_0V Sinyal İşlemleri  ",
         "Test Step": "Test Step 1",
         "Sub_Tests": [
            {
               "Port": "J7-15",
               "Applied Voltage": "5",
               "Expected Result": 5.0,
               "Tolerance": 0.3
            },
            {
               "Port": "J7-15",
               "Applied Voltage": "3.3",
               "Expected Result": 3.3,
               "Tolerance": 0.3
            },
            {
               "Port": "J7-15",
               "Applied Voltage": "0",
               "Expected Result": 0.0,
               "Tolerance": 0.3
            }
         ]
      }
   ],
   "Test Case 3": [
      {
#.... so on

Here is my code: (I was successfull until I tried to have voltage_values list.)

        with open("signal_procedure.json", "r") as file:
            analogOut.procedure = json.load(file)
            print(type(analogOut.procedure))
        #Getting test cases
        listof_cases = []
        index = 0
        for index in analogOut.procedure.keys():
            listof_cases.insert(len(listof_cases), index)
        #getting values of the test case dictionary
        listof_content = []
        index = 0
        for index in analogOut.procedure.values():
            listof_content.insert(len(listof_content), index)

        index = 0
        x = 0
        voltage_values = []
        for x in listof_content:
            if "Applied Voltage" in x:
                voltage_values.index(len(voltage_values), x.values())
        print(voltage_values)

答案1 {#1}

得分: 0

以下是您要求的代码部分的翻译:

dct = {
    "Test Case 1": [
        {
            "Test Case": "Test Case 1 : SENSOR_VCC Signal Processing",
            "Test Step": "Test Step 1",
            "Sub_Tests": [
                {
                    "Port": "J7-9",
                    "Applied Voltage": "4",
                    "Expected Result": 5.0,
                    "Tolerance": 0.3,
                },
                {
                    "Port": "J7-9",
                    "Applied Voltage": "3.3",
                    "Expected Result": 4.125,
                    "Tolerance": 0.3,
                },
                {
                    "Port": "J7-9",
                    "Applied Voltage": "0",
                    "Expected Result": 0.0,
                    "Tolerance": 0.3,
                },
            ],
        }
    ],
    "Test Case 2": [
        {
            "Test Case": "Test Case 2 : REF_0V Signal Processing",
            "Test Step": "Test Step 1",
            "Sub_Tests": [
                {
                    "Port": "J7-15",
                    "Applied Voltage": "5",
                    "Expected Result": 5.0,
                    "Tolerance": 0.3,
                },
                {
                    "Port": "J7-15",
                    "Applied Voltage": "3.3",
                    "Expected Result": 3.3,
                    "Tolerance": 0.3,
                },
                {
                    "Port": "J7-15",
                    "Applied Voltage": "0",
                    "Expected Result": 0.0,
                    "Tolerance": 0.3,
                },
            ],
        }
    ],
}

out = {}
for k, v in dct.items():
    out[k] = [[dd.get("Applied Voltage") for dd in d["Sub_Tests"]] for d in v]

print(out)

输出:

{
  "Test Case 1": [["4", "3.3", "0"]],
  "Test Case 2": [["5", "3.3", "0"]]
}

英文:

IIUC you can do:

dct = {
    "Test Case 1": [
        {
            "Test Case": "Test Case 1 : SENSOR_VCC Sinyal İşlemleri  ",
            "Test Step": "Test Step 1",
            "Sub_Tests": [
                {
                    "Port": "J7-9",
                    "Applied Voltage": "4",
                    "Expected Result": 5.0,
                    "Tolerance": 0.3,
                },
                {
                    "Port": "J7-9",
                    "Applied Voltage": "3.3",
                    "Expected Result": 4.125,
                    "Tolerance": 0.3,
                },
                {
                    "Port": "J7-9",
                    "Applied Voltage": "0",
                    "Expected Result": 0.0,
                    "Tolerance": 0.3,
                },
            ],
        }
    ],
    "Test Case 2": [
        {
            "Test Case": "Test Case 2 : REF_0V Sinyal İşlemleri  ",
            "Test Step": "Test Step 1",
            "Sub_Tests": [
                {
                    "Port": "J7-15",
                    "Applied Voltage": "5",
                    "Expected Result": 5.0,
                    "Tolerance": 0.3,
                },
                {
                    "Port": "J7-15",
                    "Applied Voltage": "3.3",
                    "Expected Result": 3.3,
                    "Tolerance": 0.3,
                },
                {
                    "Port": "J7-15",
                    "Applied Voltage": "0",
                    "Expected Result": 0.0,
                    "Tolerance": 0.3,
                },
            ],
        }
    ],
}

out = {}
for k, v in dct.items():
    out[k] = [[dd.get("Applied Voltage") for dd in d["Sub_Tests"]] for d in v]

print(out)

Prints:

{
"Test Case 1": [["4", "3.3", "0"]], 
"Test Case 2": [["5", "3.3", "0"]]
}

赞(1)
未经允许不得转载:工具盒子 » 在Python中查找JSON中的特定单词。