如何将Azure Data Factory复制活动输出存储为JSON而非octet-stream?
解决ADF存储JSON为octet-stream导致Python无法读取的问题
一、在Azure Data Factory中修正文件存储格式
- 复制活动配置:如果用复制活动写入数据湖,进入活动的Sink选项卡,将「文件格式」从默认二进制改为
JSON,还可以按需设置JSON的编码、是否包含表头等参数,确保输出标准JSON格式文件。 - 数据流活动配置:若使用数据流,在Sink转换的设置里,把输出格式指定为JSON,避免默认的二进制输出设置。
二、Python读取octet-stream格式JSON的方法
octet-stream只是文件的MIME类型标记,实际内容还是JSON字节数据,直接读取后解码解析即可,示例代码如下:
import json # 读取本地文件的情况 def load_json_from_octet(file_path): with open(file_path, 'rb') as f: # 读取二进制数据 byte_content = f.read() # 解码为字符串(默认utf-8,若有特殊编码可调整) json_content = byte_content.decode('utf-8') # 解析JSON data = json.loads(json_content) return data # 直接从Azure Blob存储读取的情况(需安装azure-storage-blob) # from azure.storage.blob import BlobClient # def load_json_from_blob(conn_str, container, blob_name): # blob_client = BlobClient.from_connection_string(conn_str, container, blob_name) # byte_content = blob_client.download_blob().readall() # json_content = byte_content.decode('utf-8') # return json.loads(json_content)
内容的提问来源于stack exchange,提问作者Jwest
相关产品推荐
相关产品推荐

