🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

2回答

436閲覧

ビットコインの価格取得する際のコードの疑問点について

GuMasi

総合スコア73

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/03/15 04:35

下記のコード「cc_timestamp = datetime.fromtimestamp(cc['timestamp'])」
の疑問点などについてご教示いただきたいのですが、fromtimestampはどのようなときに使用するのでしょうか。
また「cc_timestamp = datetime.fromtimestamp(cc['timestamp'])」のcc['timestamp'])」は[ではなく(にするとエラーが表示されてしまうのですがどうしてでしょうか?

python3

1from datetime import datetime 2import requests 3 4url = 'https://coincheck.com/api/ticker' 5cc = requests.get(url).json() 6 7cc_last = '{:,}'.format(int(cc['last'])) 8cc_timestamp = datetime.fromtimestamp(cc['timestamp']) 9 10print("coincheck 現在のビットコインの最後の取引価格 =", cc_last,"円") 11print("取得時間 =", cc_timestamp) 12

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

fromtimestampはどのようなときに使用する

まずはリファレンスを確認しましょう。

「POSIX タイムスタンプに対応するローカルな日付と時刻を返します」

「cc_timestamp = datetime.fromtimestamp(cc['timestamp'])」のcc['timestamp'])」は[ではなく(にするとエラーが表示されてしまうのですがどうしてでしょうか?

ccがdict(辞書)だからです。なぜ()にすることができると思うのですか?

投稿2021/03/15 04:56

TakaiY

総合スコア13758

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2021/03/17 07:51

回答いただきありがとうございます。 >ccがdict(辞書)だからです。なぜ()にすることができると思うのですか? コードの記述に辞書型{がないようだったので、引数として受け取るのかと思っていまして。 その辞書型が必要なのはAPIのWEBサイトを参照しているのでしょうか?
TakaiY

2021/03/17 08:02

「コードの記述に辞書型{がない」 辞書型のデータを作るのに「リテラル」が必須ということはありません。というよりそうでないことが多いです。 ccは以下の部分で生成されますが、 この関数getが辞書を返しています。 cc = requests.get(url).json() >引数として受け取るのかと思って pythonで[]を使って関数呼び出し(引数を渡す)かたちはありません。 >その辞書型が必要なのはAPIのWEBサイトを参照しているのでしょうか? 質問の内容がよくわかりません。
GuMasi

2021/03/18 09:08

>ccは以下の部分で生成されますが、 この関数getが辞書を返しています。 そうしますとキーを取り出すためにccの後の記述が[]のようになっているのでしょうか? >その辞書型が必要なのはAPIのWEBサイトを参照しているのでしょうか? >>質問の内容がよくわかりません。 伝え方が悪く申し訳ありません。 APIのデータにアクセスしているのでそれらと関係があるのかと。
TakaiY

2021/03/18 10:10

> そうしますとキーを取り出すためにccの後の記述が[]のようになっているのでしょうか? pythonを書くなら、データ構造の扱いは把握しておく必要があります。 辞書(dict)はキーと値が対になったものが複数入ったもので、その辞書(d)からキー(x)に対応する値を取り出す記法が 「 d[x] 」です。 僕のデータがT_infoであれば、身長は T_info['身長'] で取り出せるでしょう。 リストはまとまった値を、番号付けて格納してあるもので、干支(E)であれば、E[10] は "戌" でしょう。 >APIのデータにアクセスしているのでそれらと関係があるのか APIだから、返ってきた値が辞書になると決っているわけではありません。 そのAPI の応答が何なのかによります。 単なるテキストから、CSV・XML・JSONなどいろいろあります。 cc = requests.get(url).json() 提示のソースは、こうなっていますので、APIのレスポンスはJSONで、CCにはそれを辞書に変換したものが入るのでしょう。
GuMasi

2021/03/20 09:22

重ね重ねありがとうございます。 辞書の要素を取り出すためにkey[]と記述がしてあるということなのですね。 「APIのレスポンスはJSONで、CCにはそれを辞書に変換したものが入るのでしょう。」とのことですが、APIのレスポンスにあたるのがコインチェックのAPIのURL(https://coincheck.com/ja/documents/exchange/api)にjaとあるのがそれに該当しているのでしょうか? 度々のご質問で恐縮ですが、ご教示いただけますと助かります。
TakaiY

2021/03/20 09:57

>辞書の要素を取り出すためにkey[]と記述がしてあるということなのですね。 「key[]」っていうのはよくわかりません。 dict[key] とか 、提示のソースであれば cc[key] ですかね。 jaが何のことなのかわかりません。 jaなんてどこに書いてあります? APIの解釈の仕方ですが、ソースにあるURLを見ると取得しているデータは、'https://coincheck.com/api/ticker'ですね。 このURLで何が取れるかをそのAPIドキュメントで調べると、「ティッカー」の項目に「GET /api/ticker」とあるのでこれであることがわらいます。そして、得られる値は下のようなjson文字列であることがわかります。 { "last": 27390, "bid": 26900, "ask": 27390, "high": 27659, "low": 26400, "volume": "50.29627103", "timestamp": 1423377841 } それぞれの項目は、以下のもの。 last 最後の取引の価格 bid 現在の買い注文の最高価格 ask 現在の売り注文の最安価格 high 24時間での最高取引価格 low 24時間での最安取引価格 volume 24時間での取引量 timestamp 現在の時刻 ソースではこれを.json() 関数で辞書にしているので、同じ内容を持った辞書がccに入っています。 例えば、この通りのレスポンスだったとすると、 ソースで参照している、cc['last'] は、27390 ということになりますね。
GuMasi

2021/03/20 12:21

>「key[]」っていうのはよくわかりません。 []がどのような場合に使用されるかについてlastのキーを取り出すために[ ]を記述してあるのですねとお伝えできればと思いました。 >jaが何のことなのかわかりません。 jaなんてどこに書いてあります? こちらのリンクのhttps://coincheck.com/ja/documents/exchange/api にhttps://coincheck.com/のあとにjaがあるかと思うのですが、そちらのことです。 >APIの解釈の仕方ですが、ソースにあるURLを見ると取得しているデータは、'https://coincheck.com/api/ticker'ですね。 このURLで何が取れるかをそのAPIドキュメントで調べると、「ティッカー」の項目に「GET /api/ticker」とあるのでこれであることがわらいます。そして、得られる値は下のようなjson文字列であることがわかります。 APIのjsonをアドレスバーにあるjaのことかと思っていたのですが、そうではないのですね。
guest

0

fromtimestampは、POSIX タイムスタンプに対応するローカルな日付を返します。

PythonでUNIX時間(エポック秒)と日時datetimeを相互変換

cc['timestamp']はccという辞書のキー'timestamp'に対する値を返すので、[]でなければ成りません。

投稿2021/03/15 04:54

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2021/03/17 07:55

回答いただきありがとうございます。 >cc['timestamp']はccという辞書のキー'timestamp'に対する値を返すので、[]でなければ成りません。 リンクを参照しましたのですが、申し訳ないのですが、理解するのに私にはちょっと難しいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問