[英]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.