我需要从数组(命名空间)中过滤掉所有不满足所需条件的值:字段“status”=“TRADING”
我使用这个变体
tmpSymbolsT←(data←⎕JSON(HttpCommand.Get'api.binance.com/api/v3/exchangeInfo').Data).symbols
tmpSymbols←{(⍵.status≡'TRADING')⌿⍵}⍨¨tmpSymbolsT
但是,它返回包装器中的每一行,并且我想要干净的行
tmpSymbols[1] ⍝ I have
┌─────────────────────────────────┐
│┌───────────────────────────────┐│
││ #.[JSON object].[JSON object] ││
│└───────────────────────────────┘│
└─────────────────────────────────┘
tmpSymbolsT[1] ⍝ I need like this
#.[JSON object].[JSON object]
如何做?
这里的问题是您单独过滤每个(
¨
)对象,而不是过滤整个集合。
(顺便说一句,你还有一个不必要的通勤(
⍨
),在这种情况下它没有任何作用。)
所以,你真的想要类似
tmpSymbols←{(⍵.status≡'TRADING')⌿⍵}tmpSymbolsT
的东西
但现在 ⍵.status
是一个状态向量(列表),它当然不会匹配 (≡
) 单个状态 'TRADING'
。您有几个选项可以解决此问题:
⍵.status≡¨⊂'TRADING'
使用显式的 every 并包含 (⊂
) 单个状态,因此它可用于每次比较。'TRADING'∘≡¨⍵.status
将单个状态绑定 (∘
) 到匹配函数,从而派生出“正在交易”函数,然后将其应用于每个状态。⍵.status∊⊂'TRADING'
,包含单个状态并检查属于 (∊
) 单个状态数组成员的所有状态。这是执行您想要的操作的代码示例:
tmpSymbolsT←(data←⎕JSON(HttpCommand.Get'api.binance.com/api/v3/exchangeInfo').Data).symbols
tmpSymbols←{(⍵.status∊⊂'TRADING')⌿⍵}tmpSymbolsT
tmpSymbols[1]
#.[JSON object].[JSON object]