输入数据:
val1 = '[{"EmpID":123456,"AnalystID": "8aa18b9c59XXXXXb20cc2534","173f48XXXXXX427f3f14516dd0"]}]'
预期输出:
val_op = {"EmpID":123456,"AnalystID": "8aa18b9c59XXXXXb20cc2534","173f48XXXXXX427f3f14516dd0"]}
type(val1)
是 str
type(val_op)
是 dict
(基本上我只需要删除将 Val1
定义为字符串的第一个和最后一个单引号)。
我尝试过的方法:
>>> strlen = len(val1)
>>> payloadStr = val1[1:(strlen-1)]
'{"EmpID":123456,"AnalystID":
"8aa18b9c59XXXXXb20cc2534","173f48XXXXXX427f3f14516dd0"]}'
>>> import json
>>>json.loads(payloadsStr)
{'EmpID':123456,'AnalystID':
'8aa18b9c59XXXXXb20cc2534','173f48XXXXXX427f3f14516dd0']}
最佳答案
您不必单独处理 []
,json.loads
可以处理 json 列表对象。
import json
payload = json.loads(val1)[0]
另请注意,字符串中的列表值缺少左括号,应该是...
val1 = '[{"EmpID":123456,"AnalystID": ["8aa18b9c59XXXXXb20cc2534","173f48XXXXXX427f3f14516dd0"]}]'
# ^
由于您提到该字符串来自网络请求,这意味着发出该请求的人错误地格式化了他们的 json。
关于python - 如何从字典列表转换为字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57718118/