JSON转换为数据,并使用缺少的属性和值去支点
eduard_wagner
成员职位:3.贡献我
大家好!
毕竟我无法找出如何解决这个问题:我有一个JSON文件与其属性和值不一致,有些缺失。是这样的:
[{“高”,“日期”:1465632900:0.00199281,“低”:0.00199281,“开放”:0.00199281,“关闭”:0.00199281,“卷”:0.00078269,“quoteVolume”:0.39276167,“weightedAverage”:0.00199281},{“低”,“日期”:1465633200:0.00199281,“开放”:0.00199281,“关闭”:0.00199281,“卷”:0.00034535,“quoteVolume”:0.17329899,“weightedAverage”:0.00199281}]
正如您所看到的,第二个条目中有第二个属性“high”,它的值丢失了。如果不创建缺失的属性和值,就不可能在此之前对JSON数据进行De-Pivot处理,会出现以下错误:“系列必须具有相同的长度:不执行转换。”我尝试了“声明缺失值”,但当然这需要在纠正任何值之前的属性。
不幸的是,数据集非常大。是否有一种方法/操作员来修复这个过程?
非常感谢!
0
最佳答案
-
sgenzer 管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理
你好@eduard_wagner-是的,这对JSON数组来说相当棘手。这是你的一个变通办法:
<?xml version="1.0" encoding="UTF-8"?> <过程version = " 7.6.001”>
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文
<过程扩展= " true " >
<参数键=“文本”值= "[{“date": 1465632900,“引起:0.00199281,“low": 0.00199281,“open": 0.00199281,“close": 0.00199281,“volume": 0.00078269,“quoteVolume": 0.39276167,“weightedAverage": 0.00199281},{“date": 1465633200,“low": 0.00199281,“open": 0.00199281,“close": 0.00199281,“volume": 0.00034535,“quoteVolume": 0.17329899,“weightedAverage": 0.00199281}] " / >
< /操作符>
< /操作符>
< /操作符>
< /操作符>
< /操作符>
> < /过程
< /操作符>
> < /过程斯科特
0
答案
你好@eduard_wagner-欢迎来到社区。所以有几种方法来解析JSON文件:1)使用“JSON到数据”操作符;2)使用“JSON到XML”操作符转换为XML,然后使用“读取XML”,3)如果你从web服务中获得JSON,你可以使用内置的JSON解析器在通过web服务操作符充实数据。这些操作符在文本处理/ Web挖掘扩展中(可通过市场访问)。
如果您需要更多帮助,可以使用>工具将您的RapidMiner进程作为XML发布到这个线程中。这让我们更容易提供帮助。
斯科特
谢谢你的帮助@sgenzer。我得到了你所描述的过程,这是xml:
创建Document -> JSON到Data -> De-Pivot -> res
(对于这个例子,我使用简化的JSON数据集)
当De-pivot操作符尝试创建属性并填充值时,会发生流程错误。问题是,JSON数据集的第二个对象缺少属性/JSON键“high”及其值。
是否有一种方法,depivot操作符跳过缺失的属性/值或插入预定义的值?我试图用“替换/声明丢失的值”操作符捕获错误,但它们不能应用,因为在提取之前未指定属性。此外,“生成属性”操作符不工作。
希望您在xml中看到问题所在
非常感谢!
爱德华·
很有效,太棒了,谢谢@sgenzer!我明白了,枢轴操作符根据id属性分组,在进行枢轴旋转时,缺失的值显示为问号。
该XML代码放在哪里?
嗨@danhlee你可以在这里阅读我们如何使用XML来共享进程:
https://community.www.turtlecreekpls.com/t5/RapidMiner-Studio-Knowledge-Base/How-can-I-share-processes-without-RapidMiner-Server/ta-p/37047
斯科特
嘿@sgenzer
非常感谢你的信息!我现在就去看看。