司开星的博客

近期小问题总结

平时遇到的一些值得记录的小问题不好拿来写一篇博客,总结一下写个集合帖。

Python导入导出json时保留对象(object)顺序

json.dumps直接导出OrderDict()格式就能保留顺序;

json.loads(fp, object_pairs_hook=collections.OrderedDict)即可将object类型都转成OrderedDict()类.

pip 安装特定版本的软件包

pip install lxml==3.4.4

只需要下载不需要安装的话:

pip download lxml

Python中调用用chrome直接打开本地页面源码

先下载chromedriver: https://sites.google.com/a/chromium.org/chromedriver/downloads

1
2
3
4
from selenium import webdriver

driver = webdriver.Chrome(chromedriver_path)
driver.get('view-source:http://www.baidu.com')

WebDriverException: Message: chrome not reachable

webdriver.quit()

requests posts参数传递str的一个问题

requestspost data参数可以传递dict或者str,传递str时是原样传递的。

这里有个问题,postcontent-type一般是application/x-www-form-urlencoded, 但requests直接post str时不会自动在header中加入这个参数,需要手动添加。

不过传递dict时则会自动加入并且将dict组合成str

PyQt中动态添加界面组件并重命名

1
2
3
4
5
6
7
8
9
10
def add_button_click(self):
new_label = QtGui.QLabel()
new_lineedit = QtGui.QLineEdit()
self.add_num += 1
new_label.setText(str(self.add_num))
new_lineedit.setMinimumSize(500, 20)
new_lineedit.setObjectName('lineEdit_%s' % self.add_num)
self.verticalLayout.addWidget(new_label)
self.verticalLayout_2.addWidget(new_lineedit)
self.added_lineedit.append(new_lineedit)