0
現在、コマンドライン引数を使用してPythonが受け入れるjson入力をインポートする作業をしていますが、JSONに異なる値をリストに保存しようとしています。私は以下のコードに問題があり、以下のコードとエラーの両方を添付しています。どんな助けでも大歓迎です。Pythonのコマンドラインから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)
私が与えるcommadlineのargunetが、私はこのエラーを引き起こし、私のアプローチが適切かどうされているものを見つけることができないのですpython dynamicMapper.py '{'proxy':1,'OS':2}'
です。
ああ、ありがとう!何が間違っていたかは、私がそれを呼び出す方法だったと思います。私は 'python dynamicMapper.py {'proxy':1、 'OS':2}'を使っていました。私は一重引用符と二重引用符は交換可能でしたが。たぶんDICではないでしょう、そうですか? – lordlabakdas
@lordlabakdasあなたはスクリプトにdictを渡すのではなく、スクリプトがJSON.loadsで解析するJSONを含む文字列を渡します。 – niemmi