python读取xml数据并显示为表格_用Python解析XML数据,然后用SQL创建一个数据库
我对运行代码后在命令窗口中得到的输出有点困惑。我对每一部分都复习了几遍,我不知道哪里出了问题。在
为什么字典计数打印,但其余打印语句没有显示?我还检查了SQLite文件中的表,表中没有我的数据,只有标题。在
我忽略了什么吗?不会出现错误,但它不会给出表中的输出或数据,即使使用insert、select和fetchone语句也是如此。在
提前感谢您的评论!在
以下是我一直在玩的东西:import xml.etree.ElementTree as ET
import sqlite3
conn = sqlite3.connect('trackdb.sqlite')
cur = conn.cursor()
cur.excutescript('''
DROP TABLE IF EXISTS Artist;
DROP TABLE IF EXISTS Album;
DROP TABLE IF EXISTS Track;
DROP TABLE IF EXISTS Genre;
CREATE TABLE Artist (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
name TEXT UNIQUE
);
CREATE TABLE Genre (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
name TEXT UNIQUE
);
CREATE TABLE Album (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
artist_id INTEGER,
title TEXT UNIQUE
);
CREATE TABLE Track (
id INTEGER NOT NULL PRIMARY KEY
AUTOINCREMENT UNIQUE,
title TEXT UNIQUE,
album_id INTEGER,
genre_id INTEGER,
len INTEGER, rating INTEGER, count INTEGER
);
''')
fname = raw_input('Enter file name: ')
if ( len(fname) < 1 ) : fname = 'Library.xml'
# Track ID369
# NameAnother One Bites The Dust
# ArtistQueen
def lookup(d, key):
found = False
for child in d:
if found : return child.text
if child.tag == 'key' and child.text == key :
found = True
return None
stuff = ET.parse(fname)
all = stuff.findall('dict/dict/dict')
print 'Dict count:', len(all)
for entry in all:
if ( lookup(entry, 'Track ID') is None ) : continue
name = lookup(entry, 'Name')
artist = lookup(entry, 'Artist')
album = lookup(entry, 'Album')
count = lookup(entry, 'Play Count')
rating = lookup(entry, 'Rating')
length = lookup(entry, 'Total Time')
genre = lookup(entry, 'Genre')
if name is None or artist is None or album or genre is None : continue
print name, artist, album, genre, count, rating, length
cur.execute('''INSERT OR IGNORE INTO Artist (name)
VALUES ( ? )''', ( artist, ) )
cur.execute('SELECT id FROM Artist WHERE name = ? ', (artist, ))
artist_id = cur.fetchone()[0]
cur.execute('''INSERT OR IGNORE INTO Album (title, artist_id)
VALUES ( ?, ? )''', ( album, artist_id ) )
cur.execute('SELECT id FROM Album WHERE title = ? ', (album, ))
album_id = cur.fetchone()[0]
cur.execute('''INSERT OR IGNORE INTO Genre (name)
VALUES ( ? )''', ( genre, ) )
cur.execute('SELECT id FROM Genre WHERE name = ? ', (genre, ))
genre_id = cur.fetchone()[0]
cur.execute('''INSERT OR REPLACE INTO Track
(title, album_id, genre_id, len, rating, count)
VALUES ( ?, ?, ?, ?, ?, ? )''',
( name, album_id, genre_id, length, rating, count ) )
conn.commit()
我缺少一个SELECT语句吗?我试图应用一个JOIN语句来显示所需的表,其中包括曲目、流派、专辑和艺术家的名字,但我真的不知道如何合并它。当我尝试genre_id=当前取款()[0]如果有人能给我一些见解,我将不胜感激。在
以下是指向XML数据的链接:
它基本上在不同的键/值对的字典中显示轨迹信息的字典。在
再次感谢。在
python读取xml数据并显示为表格_用Python解析XML数据,然后用SQL创建一个数据库相关推荐
- python 读取txt文件、转为json文件_使用python操作json文本文件
使用python读写文本文件内容时,我们知道如果文本文件里的内容无规律,那么修改起来比较麻烦.但是如果文本文件存储是有规律的,比如JSON格式,在利用python内置的函数把JSON格式的数据转成py ...
- 如何使用python读取excel表的某一列_使用python采集Excel表中某一格数据
安装并导入模块 打开命令行窗口,输入: pip install -i https://mirrors.aliyun.com/pypi/simple/ openpyxl 导入: from openpyx ...
- python读取文件夹下所有图像 预处理_在python中读取预处理的cr2原始图像数据
您可以使用rawkit来获取这些数据,但是,您将无法使用实际的rawkit模块(它为处理原始图像提供了更高级别的api).相反,您将希望主要使用libraw模块,该模块允许您访问底层LibRaw ap ...
- python读取word文档中的图片_【Python 3 获取Word所有图片】
上次讲到如何手动快速提取Word文档中的所有图片.这次我们用Python-3基于图片提取原理,写代码实现自动获取. Python 3实现代码import os,zipfile,shutil #引入os ...
- python读取rtf文件中指定的内容_使用Python读取RTF文件时遇到欧元符号问题
RTF标准使用UTF-16,但形状适合RTF命令序列格式.记录在http://en.wikipedia.org/wiki/Rich_Text_Format#Character_encoding.遗憾的 ...
- python读取txt文件并分割成列表_在python中读取文本文件并将其拆分为单个单词
给定此文件:$ cat words.txt line1 word1 word2 line2 word3 word4 line3 word5 word6 如果一次只需要一个单词(忽略文件中空格和换行符的 ...
- python 显示表格数据_python显示excel表格数据-怎么用python读取excel表格的数据
怎么用python读取excel表格的数据 #导入包 import xlrd #设置路径 path='C:\\Users\\jyjh\\Desktop\\datap.xlsx' #打开 data=xl ...
- python处理表格数据-python读取word 中指定位置的表格及表格数据
1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specT ...
- java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...
网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...
最新文章
- 复合的赋值运算符例题_Java千问:关于Java语言复合赋值运算符的两个问题,快来瞧瞧!...
- 特斯拉又被挖墙脚:Autopilot总监离职,加入苹果造车团队
- liunx 在虚拟机(VMware)下挂载光驱命令
- (五)操作系统安全概念和设计思想
- RACSignal的Subscription深入分析
- H3C 模拟器 pc与sw直连 登录web
- linux 权限rwx(4,2,1)详细说明
- java非法表达式开头,java - 我不断收到“ Battle.java:11:错误:表达式的非法开头” Heelp - SO中文参考 - www.soinside.com...
- 串口屏和并口屏的区别?
- 计算机二级vbf资源百度云,2018年计算机二级考试考前冲刺卷
- ESP32 入门笔记06: WIFI时钟 + FreeRTOS+《两只老虎》 (ESP32 for Arduino IDE)
- Android动画-Interpolator(插值器)大全
- 在阿里云中搭建大数据实验环境
- 如何培养青少年的阅读习惯?父母应该从三个方面培养青少年的好兴趣
- flutter CustomPainter 简单绘制 三角形 多边形
- mxgraph进阶(三)Web绘图—mxGraph项目实战
- 2021年华为云618年中钜惠,惊喜“惠”聚!
- NSGA2 Matlab toolbox
- SqlServer2005 AMD8450 三核CPU安装Sql Server 2000 SP4 补丁的办法
- android 8 荣耀9,华为荣耀8和华为荣耀9对比评测,华为荣耀真的很强