gpt4 book ai didi

json - 读取在 SSIS 中有一个 JSON 列的 csv 文件?

转载 作者:行者123 更新时间:2023-12-04 10:32:28 26 4
gpt4 key购买 nike

我有以下包含 4 列的 CSV 文件。最后一栏addresses以 JSON 格式保存 2 个地址历史记录。我曾尝试在 SSIS 中读取它,但它将 JSON 与逗号 (,) 一起拆分,而不是将所有地址分组在一列下。

我为此使用了平面文件连接器。此类内容是否还有其他源组件?如何在 SSIS 中解析它,以便只有 4 列并且地址都出现在一列下?

id,title,name,addresses
J44011,Mr,James,"{""address_line_1"": 45, ""post_code"": ""XY7 10PG""},{""address_line_1"": 15, ""post_code"": ""AB7 1HG""}"

最佳答案

您可以使用脚本组件将 JSON 处理到其自己的详细信息表中。

我创建了以下数据流:

enter image description here

以下是脚本组件的步骤:

在输入上添加 ID 和地址列:

enter image description here

在输入和输出上:添加一个新的输出并创建列(记住对数据类型进行编程:

enter image description here

剧本:

public class Addresses
{
public int address_line_1 { get; set; }
public string post_code { get; set; }
}

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
//Test if addresses exist, if not leave the Row processing
if (string.IsNullOrEmpty(Row.addresses)) return;

//Fix Json to make it an array of objects
string json = string.Format("[{0}]", Row.addresses);

//Load into an array of Addressses
Addresses[] adds = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Addresses[]>(json);

//Process the array
foreach (var a in adds)
{
rowsAddressesBuffer.AddRow();
rowsAddressesBuffer.ID = Row.id;
rowsAddressesBuffer.Address1 = a.address_line_1;
rowsAddressesBuffer.PostalCode = a.post_code;
}
}

笔记:
  • 添加的类用于存储结果。
  • 必须修复 JSON 才能创建对象数组。
  • 您需要添加对 System.Web.Extensions 的引用。
  • 这进入负载。确保文本限定符定义为双引号 (")
  • 关于json - 读取在 SSIS 中有一个 JSON 列的 csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60357591/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com