[英]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
您不應該使用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.