python - 创建错误条件:google.api_core.exceptions.NotFound: 404 Not found: URI
问题描述
我想知道如果您在云存储中找不到 csv 文件,是否可以创建条件,终止脚本(例如打印)。
def insert_bigquery(target_uri, dataset_id, table_id):
bigquery_client = bigquery.Client()
dataset_ref = bigquery_client.dataset(dataset_id)
job_config = bigquery.LoadJobConfig()
job_config.schema = [
bigquery.SchemaField('id','STRING',mode='REQUIRED')
]
job_config.source_format = bigquery.SourceFormat.CSV
job_config.field_delimiter = ";"
uri = target_uri
load_job = bigquery_client.load_table_from_uri(
uri,
dataset_ref.table(table_id),
job_config=job_config
)
print('Starting job {}'.format(load_job.job_id))
load_job.result()
print('Job finished.')
insert_bigquery(bucket_name, dataset, tabela)
解决方案
由于我不知道将要出现的 csv,因此我进行了目录级别的测试并且它起作用了。
def blob_exists():
client = storage.Client()
bucket = client.get_bucket('bucket_name')
bb = bucket.list_blobs(prefix='test_directory')
for resource in bb:
print(resource.name)
blob = bucket.blob(resource.name)
return blob.exists()
a = blob_exists()
if a is True:
print("OK")
else:
print("Not found")
推荐阅读
- excel - 删除 Excel 中的每一行
- amazon-web-services - Cognito AWS 以用户身份使用 Python 登录 - NoCredentialsError:无法找到凭证
- react-native - 尝试制作简单的 react-native-app 时无法显示警报
- docker - Docker 容器输出不会更新其标准输出的最后一行,而是垃圾邮件
- python - 从并行运行脚本更新值的最佳方法 - Python
- javascript - JavaScript 没有从“getElementById”获取值
- c# - Quartz.NET 三级架构С#
- python - 从另一个正在运行的python文件访问一个类实例/变量?
- angular - 带有 rxjs 的异步管道
- python - 为什么 Vim 用 +python3 编译时运行 python2?