我有一个从crunchbase中抓取的JSON文件,并希望从该文件中打印'contact_field'
这是JSON文件中的联系人字段的示例。
"contact_fields": {
"contact_email": "info@email.com",
"phone_number": "+44 800 011 9688"
},
字符串
下面的代码是查找联系人字段以打印联系人信息和电话号码
with open('html_found.json') as filter:
data = json.load(filter)
# Find and print the specified content if it exists
if "contact_fields" in data:
contact_fields = data["contact_fields"]
contact_email = contact_fields.get("contact_email")
phone_number = contact_fields.get("phone_number")
if contact_email:
print("Contact Email:", contact_email)
else:
print("Contact Email not found.")
if phone_number:
print("Phone Number:", phone_number)
else:
print("Phone Number not found.")
else:
print("No contact fields found in the JSON data.")
型
输出显示“No contact field found in the json”,即使它在文件中也是如此。我在文件或线路上有什么错误吗?
下面是html_found.json中使用json beautiful
的数据
2条答案
按热度按时间dauxcl2d1#
代码一般工作。我在之前添加了一个小的write,它将您发布到json中的内容完全写入,然后读取并解析它。你确定
contact_fields
本身不在列表或其他dict中,所以可以直接通过data["contract_fields"]
访问它吗?请提供一个完整的json,再现你的问题,与你发布的部分没有什么错的时刻。字符串
我的输出
型
编辑:根据新添加的json屏幕截图,很明显
contact_fields
不在json的根级别。我将假设现在发布的是您想要解析的JSON。所以到达contact_fields的方法如下
型
请注意,我没有键入
GET/v4/data/...
的整个键,因为它很长,所以你需要用完整的字符串替换它。也不知道整个json有多静态,特别是
HttpState
下的键似乎可能会改变。所以硬编码访问可能会中断。zengzsys2#
json模块将Json文件或字符串转换为列表和字典的层次结构。但是
in
Python操作符只研究简单dict中的键。更一般地说,Python没有提供直接的方法来递归地搜索复杂的层次结构,但是为它编写一个函数是相当简单的:字符串
你的代码可能会变成
型