首页 > 解决方案 > 如何在Python中将带有“”(而不是“)的JSON字符串转换为JSON

问题描述

我有一个字符串:

a = '"{""key1"": ""val1"", ""key2"":""val2""}"'

将其转换为 Python 中的字典的最适当方法是什么?

plainjson.loads(a)无法破译这种格式。

编辑: 这个奇怪的 JSON 字符串是在我读取带有一个“类 json”列的 CSV 时创建的。

标签: pythonjsoncsvstring-parsingspark-csv

解决方案


假设字符串来自 CSV 文件,csv请在将结果传递给解码之前对其json进行解码。

>>> import io, csv, json
>>> a = '"{""key1"": ""val1"", ""key2"":""val2""}"'
>>> csv_file_like = io.StringIO(a)
>>> reader = csv.reader(csv_file_like)
>>> result = list(reader)
>>> json.loads(result[0][0])
{'key1': 'val1', 'key2': 'val2'}

a如果已经通过从 CSV 文件中读取进行设置,这会更简单一些;您可以跳过使用io从原始 CSV 文件创建类似文件的对象acsv.reader直接在原始 CSV 文件上使用。


推荐阅读