这是我从get请求中收到的字符串:
{'company_code': u'ha', 'from-date': u'', 'to-date': u'', 'ledger_type': u'CLNT', 'cost_center': u'ALL', 'margin': u'wtmg'}
现在,我完全不知道该怎么做。我想让str ['company_code']给我“ha”作为输出。
但即使我对它执行json.dumps()或load(),我也无法访问它。
任何帮助?
编辑: 在从javascript客户端发送JSON字符串并获取json.dumps之后,我得到了这个:
{"company_code": "ha", "from-date": "", "to-date": "", "ledger_type": "CLNT", "cost_center": "ALL", "margin": "wtmg"}
这是一个字符串。我不确定如何从这里前进。
答案 0 :(得分:1)
给定的字符串不是有效的JSON。这似乎是repr
的结果。
>>> print(repr({'company_code': u'ha'}))
{'company_code': u'ha'}
JSON字符串应该用double qutoe('“')包装。
>>> print(json.dumps({'company_code': u'ha'}))
{"company_code": "ha"}
>>> import json
>>> json.loads('"a"')
u'a'
>>> json.loads("'a'")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 383, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
编辑根据问题编辑。
使用json.loads
解码json字符串;然后使用dict[key]
语法访问该值。
>>> encoded = '{"company_code": "ha", "from-date": "", "to-date": "", "ledger_type": "CLNT", "cost_center": "ALL", "margin": "wtmg"}'
>>> decoded = json.loads(encoded)
>>> decoded['company_code']
u'ha'