在Python值E中将字符串转换为字典

2024-09-23 00:20:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试了不同的方法将字符串转换成字典。你知道吗

我的字符串如下所示:

{'severity_label': 'Major', 'ne_reported_time': 1475424546, 'node_id': 54357, 'prob_cause_string': None}

当我使用

 a_dict = dict([x.strip('{}').split(":"),]) 

它给了我一个错误:

Traceback (most recent call last):
  File "<pyshell#168>", line 1, in <module>
    a_dict = dict([x.strip('{}').split(":"),])
ValueError: dictionary update sequence element #0 has length 121; 2 is required

我在Python3上运行这个。还尝试了其他各种选择,但都不管用。谢谢你的帮助。你知道吗


Tags: 方法字符串idnode字典timelabeldict
3条回答

实际上这不是JSON。这是python对象的表示(就像使用repr函数一样)。你知道吗

将其转换回python对象最安全的方法是使用ast.literal_eval函数。你知道吗

为什么不使用python3内置的ast库函数literal\u eval。最好使用文字\u eval而不是eval

import ast
str_of_dict = "{'key1': 'key1value', 'key2': 'key2value'}"
ast.literal_eval(str_of_dict)

将输出为实际词典

{'key1': 'key1value', 'key2': 'key2value'}

你想怎么做就怎么做。你知道吗

您应该使用json.loads文件

import json
a = '{"severity_label": "Major", "ne_reported_time": 1475424546, "node_id": 54357, "prob_cause_string": null}'
d = json.loads(a)

注意我用“替换”了“无”,用null替换了“无”

相关问题 更多 >