我得到了一些必须解析并转换为Dict
的输入。我无法控制输入是如何生成的。你知道吗
输入示例是u'{u\'my_key\': u\'AB\\N\'}'
。注意,这应该表示一个序列化的字典。你知道吗
使用多种方法解析此字典字符串失败。由于structure of the string being malformed due to the nested ^{json.loads
失败。使用ast.literal_eval
失败,出现(unicode error) 'unicodeescape' codec can't decode bytes in position 3-4: malformed \N character escape
错误。你知道吗
我需要以某种方式清理输入,这样\N
在用ast
解析时就不会被认为是ascii
字符。做一个简单的replace('\\', '\\\\')
看起来容易出错,而且可能有很多边缘情况。你知道吗
或者,我需要一种从嵌套字符串中删除u
的方法,这样json.loads
就可以工作了。你知道吗
谢谢
处理这种输入并不容易。事实上,我能找到的唯一解决办法是:
它可以解决您的具体例子,但我不鼓励使用它在您的项目。你知道吗
正如@snakecharmerb所说,我还建议对输入强制某种策略,并在发送json字符串之前验证它,例如使用this之类的东西。你知道吗
相关问题 更多 >
编程相关推荐