繁体   English   中英

无法从命令行为Python导入json

[英]Not able to import json from commandline for Python

我目前正在尝试导入通过命令行参数被Python接受的json输入,并且我正在尝试将不同的值保存到JSON到列表中。 我在下面给出的代码中遇到了问题,并附加了代码和下面给出的错误。 任何帮助,不胜感激。

import sys
import json
def lookup1 ():
    jsonData = json.loads(sys.argv[1])
    print jsonData
    jsonList = [jsonData['proxy'],jsonData['OS']]
    print jsonList

lookup1()

错误如下:

$ python dynamicMapper.py '{'proxy':1,'OS':2}'
Traceback (most recent call last):
  File "dynamicMapper.py", line 9, in <module>
    lookup1()
  File "dynamicMapper.py", line 4, in lookup1
    jsonData = json.loads(sys.argv[1])
  File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)

我给出的逗号参数是python dynamicMapper.py '{'proxy':1,'OS':2}'我无法找出导致此错误的原因以及我的方法是否正确。

该脚本运行良好,您只需要以正确的方式调用它即可:

python dynamicMapper.py '{"proxy":1,"OS":2}'
{u'OS': 2, u'proxy': 1}
[1, 2]

在JSON中,字符串用双引号而不是单引号引起来。 您还需要引用传递给脚本的字符串,以便外壳程序将其理解为单个参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM