json.loads

python中eval与json.loads对json的处理

*爱你&永不变心* 提交于 2021-01-22 08:48:24
JSON有两种结构: “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 eval与json.loads都可以将 大部分 的JSON串转成 Python 对象,但也有区别: >>> import json >>> s = '{"one":1,"two":2}' >>> json.loads(s) {u'two': 2, u'one': 1} >>> eval(s) {'two': 2, 'one': 1} json.loads与eval都能将s转成python中的对象,json.loads将json中的字符串转成unicode(types.UnicodeType),eval转成了str(types.StringType)。在读文件时如果有中文如 此时用json.loads会报错如下: 这时使用eval不会报错,强烈推荐,这个问题困扰了我一晚上。 对于普通的数据类型,json