<Javascript, handsontable> Jsonをパスして、Handsontableを作る。

ヘッダーheaderとボディーbodyが一体となったJsonデータをパスして、Handsontableを作る。
ポイントは、header情報を抜き出す必要がある。

ちとググって、いい例を見つけたので、試してみた。
JavascriptObject.keys()arr.map()を使ってやってみる。

結果、、、

参考にさせてもらったところ。

qiita.com

js.studio-kingdom.com

js.studio-kingdom.com

追記。
パンダさん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がなかった。。。
ふーん。。。

stackoverflow.com

https://docs.python.jp/3/library/pwd.html

<Bash> スクリプト名を取得する。

スクリプトScript名を取得する。

basenamebashの変数展開を使う。

!/bin/bash

log=`basename ${0%.sh}.log`
echo ${log}

でランすると、、、

>bash aaa.sh
aaa.log

ふーん。。。

参考にさせてもらったところ。

tilfin.hatenablog.com

qiita.com

qiita.com

<Python, selenium> 要素があるか?

要素elementがあるか? ないか? 存在するのか? の確認。
driver.find_elementsを使う。sが最後につく。
要素があれば、リストを返してくる。 なければ空リストを返す。

ja.stackoverflow.com

<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