python - 如何从字典列表转换为字典?

标签 python json pandas

输入数据:

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/

相关文章:

json - 使用谷歌地图查找给定邮政编码的所有公园

python - 如何从 Pandas 数据框中的另一列所有值和聚合中的另一列创建新列名称?

python - 如何验证 Flask 应用程序中的 URL 参数?

python - Numpy:arr[...,0,:] 有效。但是如何存储切片命令中包含的数据 (..., 0, :)?

Python - 查找 TTF 文件

python - 在 Scrapy 中嵌套项目数据

python - Django 极其缓慢

python - 如何使用 Python 跳过 Json 文件中的字段

python - 对两个数组进行分组和标准化

python - pandas dataframe聚合计算