栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

如何使文件中的数据转为python可读取的数据?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使文件中的数据转为python可读取的数据?

• json.load():是从文件中加载内容并转换成json;
• json.loads():是将字符串转换成json。

大量数据,里面有多行多列,出现类似标题报错
raise JSonDecodeError(“Extra data”, s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 104)(参考https://blog.csdn.net/u011318077/article/details/88550775

读取CSV文件
import csv
from typing import List
csvfile = open('data-text.csv', 'rt')  # 将data-text.csv传入open函数
# rb参数代表了以只读和二进制文件的模式打开,以二进制打开,则在双系统均能运行
# 还有w代表写入,wb代表以二进制写入open函数读写默认采用t方式,所以如果省略不写,则默认为t。即rt、wt、at、xt等价于r、w、a、x
reader = csv.DictReader(csvfile)  # reader函数作用是将打开的文件作为csv来读取
#DictReader是将记录变成字典,字典的键来自于csv的第一行
for row in reader:  # 打印每一行的数据
    print(row)

读取excel文件

首先使用库xlrd,用pip命令安装该库
(xlwt库用来向excel中写入数据)
然后使用xlrd中的xlrd.open_workbook进行文件读取
之后如需定到某个sheet文件,可先读取excel所对应的sheet名
for sheet in book.sheets():
print sheet.name
之后若需要读取某个具体的sheet文件:
sheet = excel.sheet_by_name(‘Table 9’) table9相当于sheet名
nrows的方法,我们将用这个方法来遍历所有行
sheet.nrows
Range()函数接收一个数字作为参数,输出一个那么多元素组成的列表
range(3)=0,1,2,rang(1,4)返回1,2,3
for i in range(sheet.nrows):
print sheet.row_values(i)
上述操作打印来每行所对应的数据
row=每一行的数据
然后从row中提取每个单元的数据
利用for cell in row
实例:
从who的文件中整理出不同国家所对应的儿童劳工和提前生育人数。

import xlrd
import pprint
from xlrd.timemachine import xrange
excel1=xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
data={}
#for sheet in excel.sheets():
    #print(sheet.name)#可获得excel所包含的sheet,名
sheet=excel1.sheet_by_name('Table 9 ')#读取某个sheet
#for i in range(sheet.nrows):#nrows可知道sheet中有多少行
   # print(sheet.row_values(i))#读取具体单元格
   # row=sheet.row_values(i)
  #  for cell in row:
      #  print(cell)
for i in xrange(14,sheet.nrows):#从14行开始读取
    row=sheet.row_values(i)#取每一行的单元值
    coutry=row[1]#取国家所在的单元格
    data[coutry]={#为data字典赋值
        'child_labor':{
            'total':[row[4],row[5]],
            'male':[row[6],row[7]],
            'female':[row[8],row[9]],
        },
        'chid_marrage':{
            'married_by_15':[row[10],row[11]],
            'married_by_18':[row[12],row[13]],
        }
    }
    #跳出循环的条件
    if coutry=='Zimbabwe':
        break
#pprint.pprint(data)
print(dir(excel1))
字典的经典案例
data={}
data[coutry]={
'child_labor':{
'total':[row[4],row[5]],
'male':[row[6],row[7]],
'female':[row[8],row[9]],
},
'chid_marrage':{
'married_by_15':[row[10],row[11]],
'married_by_18':[row[12],row[13]],
}

表会用到sheet_by_name
而对于sheet可以用函数nrows()、row.values

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号