我有一个来自开放API规范的文件,我一直试图在Jupyter笔记本中访问它。它是一个.yaml文件。我可以把它上传到Jupyter,并把它放在我想要使用的笔记本的同一个文件夹中。我不熟悉Jupyter和Python,如果这是一个基本问题,我很抱歉。我发现一个论坛建议用这个代码来读取数据(在我的文件中:"openapi.yaml"):
import yaml
with open("openapi.yaml", 'r') as stream:
try:
print(yaml.safe_load(stream))
except yaml.YAMLError as exc:
print(exc)
这似乎带来了数据,但它是一个完全非结构化的流,像这样:
{'openapi': '3.0.0', 'info': {'title': 'XY Tracking API', 'version': '2.0', 'contact': {'name': 'Narrativa', 'url': 'http://link, 'email': '}, 'description': 'The XY Tracking Project collects information from different data sources to provide comprehensive data for the XYs, X-Y. Contact Support:'}, 'servers': [{'url': 'link'}], 'paths': {'/api': {'get': {'summary': 'Data by date range', 'tags': [], 'responses': {'200': {'description': 'OK', 'content': {'application/json': {'schema': {'$ref': '#/components/schemas/covidtata'}}}}}, 'operationId': 'get-api', 'parameters': [{'schema': {'type': 'string', 'format': 'date'}, 'in': 'query', 'name': 'date_from', 'description': 'Date range beginig (YYYY-DD-MM)', 'required': True}, {'schema': {'type': 'string', 'format': 'date'}, 'in': 'query', 'name': 'date_to', 'description': 'Date range ending (YYYY-DD-MM)'}], 'description': 'Returns the data for a specific date range.'}}, '/api/{date}': {'parameters': [{'schema': {'type': 'string', 'format': 'date'}, 'name': 'date', 'in': 'path', 'required': True}], 'get': {'summary': 'Data by date', 'tags': [], 'responses': {'200': {'description': 'OK', 'content': {'application/json': {'schema': {'$ref': '#/components/schemas/data'}}}}}, 'operationId': 'get-api-date', 'description': 'Returns the data for a specific day.'}}, '/api/country/{country}': {'parameters': [{'schema': {'type': 'string', 'example': 'spain'}, 'name': 'country', 'in': 'path', 'required': True, 'example': 'spain'}, {'schema': {'type': 'strin
...etc.
我想通过数据进行分析,但似乎无法正确访问它。任何帮助都将非常感激!!非常感谢您的阅读。
您在输出中看到的是JSON。这是一种机器可读的格式,不需要人类可读的换行或缩进。您应该能够在代码中很好地处理这些数据。
或者,您可能需要考虑另一个解析器/发射器,如ruamel。它可以使处理yaml文件比当前导入的包容易得多。使用此包的打印语句可以保留行和缩进,以获得更好的可读性。