簡體   English   中英

JSON 打印 Python 中的特定值

[英]JSON print specific value in Python

我正在嘗試從看起來像這樣的數據中僅打印項目名稱

[{'Project Name': 'ABC'}, {'Customer Name': None}, {'Customer Address': None}, {'Project Description': 'Industries Pvt limited'}]

用我的 Python 代碼

with open('project.json', 'r') as f:
    data = json.load(f)
    print(data)

for p in data:
    if 'Project Name' in p:
        print(p)
#Here it prints {'Project Name': 'ABC'}
# Print each property of the object
for p in data:
  print(p['Project Name'])

它將項目名稱打印為 ABC,但給出了這樣的關鍵錯誤

KeyError: 'Project Name'

在嘗試打印之前,使用if語句查看p是否有Project Name

您的 JSON 文件:

[
    {
        "Project Name": "ABC",
        "Customer Name": "None",
        "Customer Address": "None",
        "Project Description": "Industries Pvt limited"
    },
    {
        "Project Name": "QWERTY",
        "Customer Name": "None",
        "Customer Address": "None",
        "Project Description": "Some Text"
    }
]

這是 python 文件:

import json

with open('my_json_file.json') as json_file:
    my_json = json.load(json_file)
    for data in my_json:
        print(data["Project Name"])

Output 看起來像這樣:

ABC
QWERTY

您的 JSON 無效。 您可以在此處查看您的 JSON: json lint

為您的 JSON 使用雙引號以使其有效。

[
{
    "Project Name": "ABC"
},
{
    "Customer Name": "None"
},
{
    "Customer Address": "None"
},
{
    "Project Description": "Industries Pvt limited"
}

]

我建議使用 JSON 編輯器來編寫您的 JSON: json 編輯器

您不應該使用for來迭代這些項目,因為在后來的印度不存在關鍵的“項目名稱”。 或者你必須使用if語句來判斷鍵名是否存在。

另一個建議是,您提供的數據似乎是 dict 列表,而不是常見的 json。 為什么不使用 ast? 試試下面的代碼:

import ast

txt = "[{'Project Name': 'ABC'}, {'Customer Name': None}, {'Customer Address': None}, {'Project Description': 'Industries Pvt limited'}]"
data = ast.literal_eval(txt)

print(data[0]['Project Name'])

暫無
暫無

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

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