質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

90.61%

  • Python

    7487questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Docker

    659questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

  • スクレイピング

    306questions

コロン(:)が構文エラーと表示される

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 704

Y.Nak

score 5

以下のエディタを実行したところ構文エラーとなりました

> #!/usr/bin/env python3
> 
> # ライブラリの取り込み
> import sys
> import urllib.request as req
> import urllib.parse as parse
> 
> # コマンドライン引数を得る
> if len(sys.argv)<= 1:
>     print("USAGE: hyakunin.py(keyword)")
>     sys.exit()
> keyword=sys.argv[1]
> 
> # パラメーターをURLエンコードする
> API="http://api.aoikujira.com/hyakunin/get.php"
> query={
>     "fmt":"ini"
>     "key":keyword
> }
> params=parse.urlencode(query)
> url=API+"?"+params
> print("url=",url)
> 
> # ダウンロード
> with req.urlopen(url) as r:
>     b=r.read()
>     data=b.decode("utf-8")
>     print(data)


これを実行

python "C:\Program Files\Docker Toolbox\hyakunin.py" 秋の田

エラー表示

  File "C:\Program Files\Docker Toolbox\hyakunin.py", line 18
    "key":keyword
         ^
SyntaxError: invalid syntax


17行目の「:」はエラーとならないのに、なぜこの18行目だけがエラーになるか教えていただきたいです。
このコードは「Pythonによるスクレイピング&機械学習 開発テクニック」という本で紹介されているコードなのでうまくいくはずなのですが…

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

ご提示のコードとエラーが合致しないのも気になりますが、単にコンマ忘れに見えます。

>>> hoge = {
...     "a" : "A"
...     "b" : "B"
  File "<stdin>", line 3
    "b" : "B"
        ^
SyntaxError: invalid syntax

Pythonでは一続きの文字列リテラルは合成されるので、おそらく次のように解釈されているのでしょう。

>>> hoge = { "a": "Ab" : "B" }
  File "<stdin>", line 1
    hoge = { "a": "Ab" : "B" }
                       ^
SyntaxError: invalid syntax

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/14 19:41

    ありがとうございます。その通りでした。17行目にコンマを忘れておりました。

    キャンセル

+1

出版社のサイトに書籍の最新の正誤表やサンプルソースコードがあることが多いため、
まずそちらをダウンロードして、実際のコードを確認するのが一番はやいです。

読者サポートのリンクから初版6刷用サンプルプログラムのダウンロードページ

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    argvの表示の仕方

    前提・実現したいこと pythonでとあるソースコードを書いています。 シェルから引数を持ってくる際にargvを使用しますが、 以下のように表示されます。 該当のソース

  • 解決済

    [Python3.x]BeautifulSoup4で属性の値を変更したい

    単純にprettify()でもって文字列に変換した後、re.sub()やreplace()ですれば良いと思ったのですが、prettify()してしまうと中身が変わってしまうようで、

  • 解決済

    BeautifulSoup4で特定の画像をDLしたい。

    BeautifulSoup4で特定の画像を取得したいです。 特定の画像はURLで判別することができるのですが今の感じだと関係のない画像もDLしてしまいます。 for文でページ遷移し

  • 解決済

    第一引数が指定されているかをif判定したい

    第一引数が指定されているかをif判定したい 以下のようなコードで 引数指定なしのとき、'if'が出力されることを想定していましたが、うまくいきません。 ご教示お願い致します

  • 解決済

    変数sys.argvが何をしているのか知りたい

    皆様いつもお世話になっております。 こちらのコードを読み解いているのですが、 python お天気apiから近日の天気を取得する #encoding:utf-8 impor

  • 解決済

    pythonでの文字列抽出

    https://www.google.com/url?rct=j&sa=t&url=http://itpro.nikkeibp.co.jp/atcl/news/17/0908022

  • 受付中

    UnicodeEncodeErrorが抜けなくて困っています

    現在、python ver3.4.3を使いスクレイピングをしているのですが、 取得してきた結果の中にエラーが発生する文字があり、処理が出来ません。 文字コード変換に関する様々なサイ

  • 解決済

    webスクレイピングした内容をmecabで形態素分析

    前提・実現したいこと 現在、chrome拡張機能を作っています。ユーザーが見たページのURLをサーバー側に送って、そのURL先のページの本文を抽出しそれをmecabで形態素分析した

同じタグがついた質問を見る

  • Python

    7487questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Docker

    659questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

  • スクレイピング

    306questions