最近在进行数据分析时,处理 json
格式的数据遇到了坑,主要对 json
本身不了解,导致解析过后python
不识别,我还纳闷,同样的东西,为啥格式不对,原来 None
和 null
也是有区别的。不过使用 eval()
还真挺好使,就是需要考虑一些安全性问题。
JSON: JavaScript Object Notation
( JavaScript
对象表示法), JSON
是存储和交换文本信息的语法,类似 XML
,JSON
比 XML
更小、更快,更易解析。
JSON
语法是 JavaScript
语法的子集:
-
数据在名称/值对中
-
数据由逗号分隔
-
大括号 { } 保存对象
-
中括号 [ ] 保存数组,数组可以包含多个对象
JSON 数据的书写格式是:
key : value
JSON
的 value
值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在中括号中)、对象(在大括号中)、null ,需要注意的是,key
值必须加 双引号 ,value
中,字符串必须加 双引号 ,其他类型不要加 双引号 ,以上写法必须严格遵循,否则将不会被判定为 JSON
格式。
实例演示:
使用 eval()
:
1 | def get_fea_text(data_str): |
使用 json
库:
1 | import json |
注意: 因为
json
解析的缘故,在解析过程中,会将null
转化为None
,Python
解释器虽然可以对单双引号没有特定的区分,但是在json
语句中必须使用 双引号 “” ,也要注意在字符串中如果本身含有 双引号,要加 反斜杠\
进行字符的转义,否则也会转换过程也会出错。