<Javascript, handsontable> Jsonをパスして、Handsontableを作る。
ヘッダーheader
とボディーbody
が一体となったJson
データをパスして、Handsontable
を作る。
ポイントは、header
情報を抜き出す必要がある。
ちとググって、いい例を見つけたので、試してみた。
Javascript
のObject.keys()
とarr.map()
を使ってやってみる。
結果、、、
参考にさせてもらったところ。
追記。
パンダさんpandas
のデータフレームDataFrame
を上記のJson
形式にする方法。
pandas.DataFrame.to_json(orient='records')
を使う。
In [22]: import pandas as pd In [23]: table = ''' ...: id name address ...: 1 test tokyo ...: 2 hoge osaka ...: 3 hello kyoto ...: 4 world saitama ...: ''' In [25]: import io In [29]: df = pd.read_table(io.StringIO(table), sep=' ') In [30]: df Out[30]: id name address 0 1 test tokyo 1 2 hoge osaka 2 3 hello kyoto 3 4 world saitama In [33]: import json In [37]: df.to_json(orient='records') Out[37]: '[{"id":1,"name":"test","address":"tokyo"},{"id":2,"name":"hoge","address":"osaka"},{"id":3,"name":"hello","address":"kyoto"},{"id":4,"name":"world","address":"saitama"}]' In [38]: import json In [39]: json.loads(df.to_json(orient='records')) Out[39]: [{'address': 'tokyo', 'id': 1, 'name': 'test'}, {'address': 'osaka', 'id': 2, 'name': 'hoge'}, {'address': 'kyoto', 'id': 3, 'name': 'hello'}, {'address': 'saitama', 'id': 4, 'name': 'world'}]
マニュアル。
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_json.html
<Python> OSError: [Errno 22] Invalid argument
Python
Script
をクーロンcron
さん使って自動実行させていたら、エラーを発見。
OSError: [Errno 22] Invalid argument
うーん、、なんじゃろと見ていたら、os.getlogin()
でこけていた。
ぐーぐるした結果、os.getlogin()
はターミナルTerminal
の情報を取りにいくらしい。
なので、cron
さんからだと情報が取れずエラーを吐く。。。っぽい。。。
解決策は、pwd.getpwid(os.getuid())[0]
か、```getpass.getuser()````らしい。
In [1]: import os In [2]: import pwd --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-2-4b8a6427d7f8> in <module>() ----> 1 import pwd ImportError: No module named 'pwd' In [3]: import getpass In [4]: os.getlogin() Out[4]: 'hage' In [5]: getpass.getuser() Out[5]: 'hage'
Windows/Anacondaだと、pwd
がなかった。。。
ふーん。。。
<Bash> スクリプト名を取得する。
スクリプトScript
名を取得する。
basename
とbash
の変数展開を使う。
!/bin/bash log=`basename ${0%.sh}.log` echo ${log}
でランすると、、、
>bash aaa.sh
aaa.log
ふーん。。。
参考にさせてもらったところ。
<Python, selenium> 要素があるか?
要素element
があるか? ないか? 存在するのか? の確認。
driver.find_elements
を使う。s
が最後につく。
要素があれば、リストを返してくる。 なければ空リストを返す。
<Python> == と is の違い
違い。。。
is
は、オブジェクト番号 id()
で比較している。
==
はオブジェクトの内容で比較している。
In [1]: lst = [1,2,3] In [2]: lst2 = lst In [4]: id(lst) Out[4]: 439830664 In [5]: id(lst2) Out[5]: 439830664 In [6]: lst2 is lst Out[6]: True In [7]: lst2 == lst Out[7]: True In [8]: import copy In [9]: lst3 = copy.deepcopy(lst) In [10]: id(lst3) Out[10]: 439859400 In [11]: lst3 is lst Out[11]: False In [12]: lst3 == lst Out[12]: True
参考。
http://www.python-izm.com/contents/basis/difference_eq_is.shtml
マニュアル。
http://docs.python.jp/3/reference/expressions.html#comparisons