【发布时间】:2020-12-29 23:40:25
【问题描述】:
我无法使用 ast.literal_eval() 将字典字符串转换回字典。我想原因可能是字典字符串中有很多空值。一个例子是
'{"paper_id": "94550656", "_pdf_hash": "42b3e1bd9c4740192f22d8725d470218e86301c8", "abstract": [], "body_text": [], "bib_entries": {"BIBREF0": {"title": "Solving ratio-dependent predator-prey system with constant effort harvesting using homotopy perturbation method", "authors": [{"first": "R", "middle": ["G"], "last": "Abdoul", "suffix": ""}, {"first": "A", "middle": [], "last": "Barari", "suffix": ""}, {"first": "D", "middle": ["D"], "last": "Ganji", "suffix": ""}], "year": 2008, "venue": "J. Math. Prob. Eng", "link": "16827035"}, "BIBREF1": {"title": "Numerical analysis of strongly nonlinear oscillation systems using He\'s max-min method", "authors": [{"first": "H", "middle": [], "last": "Babazadeh",.....
如何将其转换为普通字典以进行进一步处理? ###############################################
代码如下:
json_list = []
with open(s2orc_path, 'r') as s2orcReader:
for line in s2orcReader.readlines():
json_list.append(line)
s2orc_samples = json.dumps(json_list)
s2orc_data = json.loads(s2orc_samples)
在此之后,当我尝试执行 ast.literal_eval(s2orc_data[0]) 时,它给了我错误 ValueError: malformed node or string
【问题讨论】:
-
你能不能把
null换成None再做一次? -
它实际上是 JSON 吗? (如果是这样@Roharui 也会有问题,例如
true/True。)给minimal reproducible example。 -
是的,更换后可以使用。谢谢!