我在字符串中有一个JSON,如下所示:
'''{"col1":"value1", "col2":"[{'col3':'val3'},{'col3':'val4'}]"}'''
我想将其转换为:
{"col1":"value1",
"col2":[ {'col3':'val3'}, {'col3':'val4'}]}
我想在PySpark数据框中阅读此内容。如何将字符串列表转换为json结构?
答案 0 :(得分:1)
(整个)数据不是JSON字符串。这是因为JSON结构中不允许使用'
个字符。最好的选择是返回到生成该错误的位置,然后再纠正格式错误的数据。
更正了不良数据后,您可以执行以下操作:
import json
result = json.loads('''{"col1":"value1", "col2":[{"col3":"val3"},{"col3":"val4"}]}''')
如果您无法更改将数据提供给您的方式。一种解决方案是用字符串替换坏字符(但这可能会造成各种麻烦):
import json
result = json.loads('''{"col1":"value1", "col2":"[{'col3':'val3'},{'col3':'val4'}]"}''')
result['col2'] = json.loads(result['col2'].replace("'", '"'))
无论哪种方式,我都会回过头来重新处理您获取数据的方式以获得最可靠的结果。但这不是目前的JSON数据。至少不是您认为的那样。