Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以unicode作为输出或替代项的文字求值_Python_Json_Unicode - Fatal编程技术网

Python 以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: >>&

因此,如果我理解正确,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,假设它是已知类型。