持续记录Python学习中遇到的问题,有的已解决,有的只能先存疑。
[2016.5.30] 一、数据类型问题
Scrapy在爬取出数据是没有定义数据类型的,items中只有字段,也没有数据类型,但是存到数据库中有,json中也分数字和字符串的。所以在爬取时数据提取,还是要做类型转换的。
这个问题,是在mongodb命令行做数据查询时遇到的,之前用的Excel, csv没有觉察到。
顺便把Python数据类型复习一下:
一、基本数据类型:数字和字符串
1、字符串 使用' ', '' '' 或 ''' ''' 包括
加r在字符串前面,不需要再用转义符。
2、整数
3、浮点数
4、布尔类型 True False
二、数组数据类型:列表、元组、字典
1、列表
2、元组
3、字典
(具体内容有空再更)
[2016.5.18] 二、MAC下 Python操作PDF 解决乱码
想实现一个把网页网页转PDF(或叫下载存为PDF功能,想实现论坛成长贴导出功能),用了reportlab库,把写入PDF文件。遇到的问题:中文乱码。网上的资料找到的都是windows下的操作,引用字体库的。尝试找到mac中的字体库引入,没有成功,用系统文件下的字库和拷贝到另外的文件夹下都不行。(代码中注释的部分是引入字库,无法显示中文的)
#coding=utf-8
import reportlab.rl_config
reportlab.rl_config.warnOnMissingFontGlyphs = 0
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfgen import canvas
from reportlab.lib import fonts
import copy
from reportlab.platypus import Paragraph, SimpleDocTemplate, PageBreak
from reportlab.lib.styles import getSampleStyleSheet
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
#pdfmetrics.registerFont(TTFont('song', '/Users/apple/Documents/fonts/Songti.ttc'))
#pdfmetrics.registerFont(TTFont('hei', '/Library/Fonts/华文细黑.ttf'))
#fonts.addMapping('song', 0, 0, 'song')
#fonts.addMapping('song', 0, 1, 'song')
# fonts.addMapping('song', 1, 0, 'hei')
# fonts.addMapping('song', 1, 1, 'hei')
stylesheet=getSampleStyleSheet()
normalStyle = copy.deepcopy(stylesheet['Normal'])
#normalStyle.fontName ='song'
normalStyle.fontSize = 20
story = []
story.append(Paragraph('<b>hello!... </b>,PDF', normalStyle))
doc = SimpleDocTemplate('/Users/apple/Documents/hello.pdf')
doc.build(story)
今天(2016.6.15)在做文字云时,也遇到中文字库的问题。同样我引发用Mac上的中文字体,出现无法引入。从网上的字库下载,也没有引用成功,就直接叫同事把C:\windows\fonts下的字库发一个给我。这样解决了文字云的中文问题。突然想到PDF乱码的问题,直接就这用这个字库运行了这前的代码(注释部分引用windows下拷贝过来的字库即可)。OK! PDF的乱码也解决了。上次还在想有空在windows下把python环境弄一下,一想到我安装的库太多,就没有动手。
(随便把这张文字云贴出来)