在模式推断解析JSON过程中检测到了格式不正确的记录。

5

我在使用ADF中的数据集解析Blob存储中读取的基本Json时遇到了非常令人沮丧的错误。

以下是我的Json:

[{"Bid":0.197514880839,"BaseCurrency":"AED"}
,{"Bid":0.535403560434,"BaseCurrency":"AUD"}
,{"Bid":0.351998712241,"BaseCurrency":"BBD"}
,{"Bid":0.573128306234,"BaseCurrency":"CAD"}
,{"Bid":0.787556605631,"BaseCurrency":"CHF"}
,{"Bid":0.0009212964,"BaseCurrency":"CLP"}
,{"Bid":0.115389497248,"BaseCurrency":"DKK"}
]

我尝试了所有三个Json源设置,但每一个都会出现错误。

Malformed records are detected in schema inference. Parse Mode: FAILFAST

这里所说的3个设置指的是:

Single Document
Array Of Documents
Document Per Line

有谁能帮忙吗?我只需要把这个东西变成对象列表就行了!

Paul

3个回答

5

这应该适用于JSON设置 - 文档数组

输入图片说明

输入图片说明 输入图片说明


2
谢谢,您能稍微修改一下回复,将编码显示为US-ASCII吗?那就是解决方法(虽然实际上更像是一种变通方法)。我认为保留这个问题仍然有用,因为这是一个非常微妙的问题,而且您已经在这里清楚地列出了步骤 - 我正在从API获取JSON。 - Paul

2

当我们有带UTF-8 BOM编码的json文件时,ADF DataFlow无法解析这些文件,会出现问题。您可以在创建文件时指定编码为UTF-8而不是带编码的UTF-8,这样就可以解决问题。

在我的情况下,我使用复制活动来合并和创建json文件,并指定编码为UTF-8 without BOM,这解决了我的问题。

注意:由于某种原因,我们不能在DataFlow中使用具有“UTF-8 without BOM”编码的数据集,在这种情况下,您可以创建两个数据集,一个使用默认的UTF-8编码(将用于DataFlow),另一个使用UTF-8 without BOM(将用于复制活动汇聚/创建文件)。

谢谢。


0
如果结构是这样的 -
{
    "GroupId": 1,
    "SubGroups": [
        {
            "GroupId": 101,
            "SubGroups": [
                {
                    "GroupId": 10101,
                    "SubGroups": [],
                    "Type": "AA",
                    "Name": "Name1"
                }
            ],
            "Type": "A",
            "Name": "Name2"
        },
        {
            "GroupId": 102,
            "SubGroups": [],
            "Type": "B",
            "Name": "Name3"
        }
}
        

请问您能否加上一个简短的解释呢? - ryanwebjackson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接