【问题标题】:Work with value returned from Invoke-RestMethod使用从 Invoke-RestMethod 返回的值
【发布时间】:2021-07-19 03:30:48
【问题描述】:

我对 powershell 很陌生,我不知道该怎么做。 我有以下代码

$rest = Invoke-RestMethod -Uri https://blockchain.info/balance?active=3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP

$rest 输出:

$rest

3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP                                 
----------------------------------                                 
@{final_balance=150050010291; n_tx=20; total_received=150050010291}

如何将 final_balance 的值加载到变量中?

【问题讨论】:

  • $var = $rest.3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP.final_balance ?
  • 返回错误“+ FullyQualifiedErrorId : MissingPropertyName”
  • 将它传送到Get-Member 看看它会返回什么

标签: json powershell rest


【解决方案1】:

由于3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP 以数字开头,因此在尝试使用语法$rest.3P... 访问该属性时会出错。您可以做的是将其包装在一个字符串中,例如:$rest."3P.."。查看以下结果:

> $rest = Invoke-RestMethod -Uri https://blockchain.info/balance?active=3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP

3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP
----------------------------------
@{final_balance=150050010291; n_tx=20; total_received=150050010291}

> $rest.3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP

ParserError:
Line |
   1 |  $rest.3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP
     |        ~
     | Missing property name after reference operator.

> $rest."3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP"

final_balance n_tx total_received
------------- ---- --------------
 150050010291   20   150050010291

> $final_balance = $rest."3PyoQHou1BQeJnbkpKpgQNxF8wk3EXXVHP".final_balance
> $final_balance

150050010291

在终端中,您可以按 Ctrl+Space 来获得一些自动完成功能。也许这取决于终端,但如果它有效,它对导航到属性和获得推荐非常有帮助。

【讨论】:

    猜你喜欢
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多