【发布时间】:2017-12-17 13:28:48
【问题描述】:
我正在尝试将以下 JSON 文本传递到我的 python 代码中。
{"platform": "android", "version": "6.0.1"}
我的代码如下。
import sys
import json
data = json.loads(sys.argv[1])
print(str(data))
在 Windows 10 PowerShell 上运行以下命令时,
python jsonTest.py '{"platform": "android", "version": "6.0.1"}'
我得到以下信息:
Traceback (most recent call last):
File "jsonTest.py", line 3, in <module>
data = json.loads(sys.argv[1])
File "C:\Users\Rishabh Bhatnagar\AppData\Local\Programs\Python\Python36-
32\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\Users\Rishabh Bhatnagar\AppData\Local\Programs\Python\Python36-
32\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\Rishabh Bhatnagar\AppData\Local\Programs\Python\Python36-
32\lib\json\decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double
quotes: line 1 column 2 (char 1)
据我所知,我使用我的代码并正确传递 JSON 文本。我无法弄清楚我做错了什么。我知道 JSON 文本是有效的(使用 https://jsonlint.com/ 检查)。谢谢。
【问题讨论】:
-
尽量不要在命令行参数中加引号
-
刚试了一下,出现了意外的token错误。
-
在下面查看我的解决方案
-
您确定您使用的是 PowerShell,而不是常规的命令提示符之类的吗?您能否显示 PowerShell 会话的原始复制粘贴,从运行脚本的行到所有错误输出的结尾?
-
@user2357112 实际上它可以在普通终端上运行。不知道如果它有什么不同,我在 zsh 上运行。
标签: python json powershell