Python 以unicode作为输出或替代项的文字求值
因此,如果我理解正确,literal_eval可以解析unicode,但输出是UTF-8编码的字符串。有没有办法防止这种情况发生,或者你知道我可以采取什么方法来实现这一点 对于JSON,我有一个问题,即它无法读取末尾带有不必要逗号的数据类型,例如{key:value,}无法使用literal_eval 也许YAML可以工作,但我有点担心安全问题,因为您也可以创建这些函数 你认为另一种选择是采用文字评估代码并重写它吗 ast.literal\u eval可以返回Unicode:Python 以unicode作为输出或替代项的文字求值,python,json,unicode,Python,Json,Unicode,因此,如果我理解正确,literal_eval可以解析unicode,但输出是UTF-8编码的字符串。有没有办法防止这种情况发生,或者你知道我可以采取什么方法来实现这一点 对于JSON,我有一个问题,即它无法读取末尾带有不必要逗号的数据类型,例如{key:value,}无法使用literal_eval 也许YAML可以工作,但我有点担心安全问题,因为您也可以创建这些函数 你认为另一种选择是采用文字评估代码并重写它吗 ast.literal\u eval可以返回Unicode: >>&
>>> import ast
>>> ast.literal_eval(u'u"§"')
u'\xa7'
>>> type(_)
<type 'unicode'>
{key:value,}不是有效的。正确的解决方案是找到生成它的任何软件并修复它。有
所以,为了弄清楚这一点,您想使用literal_eval替换json.loads吗?如果存在空值或类似值怎么办?用}替换,}可能更容易,前提是这些值不在值中出现。literal_eval将为您提供字符串表达式计算结果的任何数据类型,可以是字符串、int、float,也可以是任何具有可用于重构它的字符串表示形式的数据类型。不幸的是,JSON和Python的文本表示形式不完全相同,因此它不能用它来代替JSON.load.No。我更希望使用literal_eval,但这会返回str而不是unicode。json.loads返回unicode,但不使用{key:value,}@martineau当我使用它print-typeliteral\u eval\§\它返回您可以编写一些东西,从literal\u eval获取结果,并将其转换为unicode,假设它是已知类型。