当读入txt文本是字符串时,而现在我们又想把它转化为字典时,则可以用json工具来转化,依赖模块为json模块
具体样例:
用open()读取文件内容:
input_file = open('example.txt','r',encoding='utf-8')#打开文件
#.readlines()读取全部内容
ceshi = input_file.readlines()
print(ceshi)
格式是列表,元素是字符串,而我们的目的是把元素转化为字典格式,并且把内容转化为Dataframe格式:
import json
re_lis = []
for lines in ceshi:
l = lines.strip()
#转化为字典
user_dict = json.loads(l)
re_lis.append(user_dict)
print(re_lis)
转化为Dataframe:
import pandas as pd
df = pd.DataFrame(re_lis)
#显示前5行
df.head()
注意
json
语法:数组或对象之中的字符串必须使用双引号,不能使用单引号。当使用单引号时,通过eval()函数来解决,eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。想象一下变量赋值时,将等号右边的表达式写成字符串的格式,将这个字符串作为eval的参数,eval的返回值就是这个表达式的结果。
示例:
a = "{'drug': '络活喜', '适应症': '高血压'}"
dic_a = eval(a)
print(dic_a)
print(type(dic_a))
总结:json.load()是字典的字符串格式转化为字典格式的常用方式,eval()针对单引号字典,但是安全性问题是我们需要注意的(其实也没啥)。