Python:读取json文件并且格式化的方法
在工作用,有时候需要用到读取json格式的情况
如下:
1 @用户帐号密码和关系 2 {"username":"12345678901","psw":'123456aaa',"classids":["211088c7c75dbc74e2e64f3c77f63642", "0278832f003754076d6f218f7d7353dc"]} 3 {"username":"12345678902","psw":'123456ss' ,"classids":["e099806922c132feadb3e31a41ee88cb"] }
1 def readJson(path): #传入参数 2 with open(path,encoding='utf-8') as handler: 3 lines = handler.readlines() #打开逐行读取文件 4 5 filterLines = [] #存储读取出来数据用的 6 for line in lines: 7 line = line.strip() #strip()默认删除空白符(包括'\n', '\r', '\t', ' ') 8 if line.find('@') == 0: #跳过@开头的行 9 continue 10 if line.find('@') == -1: 11 filterLines.append(line) 12 else: 13 filterLines.append(line[:line.find('@')].strip()) 14 return filterLines
在读取的时候,发现读取出来的内容
['{"username":"12345678901","psw":\'123456aaa\',"classids":["211088c7c75dbc74e2e64f3c77f63642", "0278832f003754076d6f218f7d7353dc"]}', '{"username":"12345678902","psw":\'123456ss\' ,"classids":["e099806922c132feadb3e31a41ee88cb"] }']

拿出来的是 一个是list 里面包含了若干 string

对此 我们需要做一个转换,把列表里面的 单引号去掉
b=eval(a[0])
#
通过以上的操作:
我们可以实现数据的转换
引用资料:
功能:将字符串str当成有效的表达式来求值并返回计算结果。
语法: eval(source[, globals[, locals]]) -> value
参数:
source:一个Python表达式或函数compile()返回的代码对象
globals:可选。必须是dictionary
locals:可选。任意map对象
在网上看到一些例子:
x = 10 y = 20 a = eval('x + y') print('a: ', a) a=30 我们可以看到,其实eval()这个函数,首先是会先吧str里面的内容,进行啊一个实例化,抽取出来成为一个对象。 { str}'x + y' 变成 x + y, 自然 "[[1,2], [3,4], [5,6], [7,8], [9,0]]" 便可以 抽取成为{list}[[1,2], [3,4], [5,6], [7,8], [9,0]]
浙公网安备 33010602011771号