くだすれPython(超初心者用) その51【まず1嫁】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/10/17(土) 10:05:38.14ID:1RQ0Wdhu
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合は、
  表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。

【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので
  ↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。最近流行中?
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 くだすれPython(超初心者用) その50【まず1嫁】
http://mevius.5ch.net/test/read.cgi/tech/1598527450/

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
2020/11/07(土) 16:01:26.61ID:80Ksuy/i
能登ちゃんは処女?
2020/11/07(土) 16:43:06.82ID:LW+62T9+
>>297
別スレに移動するです
2020/11/07(土) 16:50:09.54ID:i83Sw+va
>>297
お前は自己板に専スレ立てろレベル
2020/11/07(土) 21:58:11.38ID:ZMEyYeEe
Raspberry pi 4B でPytorchのtorchvisionパッケージ(0.8.0)をインストールしたいのですが、pip3でインストールしようとすると、0.2.2までしか無いってエラーメッセージが出て困ってます。みなさん自分でビルドしてるのでしょうか?もし良い方法があればよろしくお願いします。
2020/11/08(日) 00:22:47.76ID:r3laU95t
漏れは、Windows 10, WSL1, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 をコンパイルして入れた

なぜかと言うと、パッケージマネージャーに入っているのは、
古いバージョンが多いので使えない

build-essential とか使って、コンパイルする

build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています

パッケージ: build-essential
https://packages.ubuntu.com/ja/bionic/build-essential

簡単なのは、DockerHub で、それ用のDockerを探す
2020/11/08(日) 00:31:34.39ID:cR4RFWp/
winのpyaudioでwasapi排他モードを使いたいんですが
デバイスには他のアプリケーションからアクセスできるので
wasapi共有モードっぽいです
排他モードに切り替えるにはどうすれば良いですかね
307デフォルトの名無しさん
垢版 |
2020/11/09(月) 00:13:57.75ID:AHppX36c
ベトナム戦争で韓国軍に家族を虐殺されたベトナム人女性が
韓国政府に損害賠償を求める裁判を初めて起こした。

韓国では慰安婦問題などで日本批判が長年展開されているが、
「戦時の暴力」をめぐり今度は韓国政府が法的責任を問われる側に立たされた。

https://special.sankei.com/a/international/article/20201022/0003.html
308デフォルトの名無しさん
垢版 |
2020/11/10(火) 12:52:08.49ID:JaMU8miU
tkinterで教えて下さい
┏━━━━━━━━━━━━━┓
┃          □□ ┃ ━ window
┃          □□ ┃ ─ Frame + ScrolledText
┃※───────────┐┃ □ Button
┃│           │┃
┃│           │┃
┃└───────────┘┃
┗━━━━━━━━━━━━━┛
こんなウィンドウがあった時、※の座標を指定して右とか下にウィンドウを
マウスで広げても追従するにはどうしたらよいでしょうか。
↓は非常に理想に近いのですが、下に隙間が出来てしまっています。(左右下の隙間は5ピクセル程度)

import tkinter as tk
import tkinter.scrolledtext as tkst

win = tk.Tk()
frame1 = tk.Frame(master = win,bg = 'blue')
frame1.pack(pady=50,fill='both', expand='yes')
editArea = tkst.ScrolledText(master = frame1, wrap = tk.WORD,width = 50,height = 20)
editArea.pack(padx=5, pady=5, fill=tk.BOTH, expand=True)
editArea.insert(tk.INSERT,'abcdefg')
win.mainloop()
309デフォルトの名無しさん
垢版 |
2020/11/10(火) 13:00:14.77ID:08CevRpc
pady=0
310デフォルトの名無しさん
垢版 |
2020/11/10(火) 13:48:38.61ID:WtIXeKuk
コメントありがとうございます。
pady = 0 だと、上の余白が無くなってしまいます。
上の余白を保ったまま、左右下を動かして追従させたいという事です。
説明不足ですみません。
コメントありがとうございました。
311デフォルトの名無しさん
垢版 |
2020/11/10(火) 14:15:54.10ID:3xGJBleZ
ボタン四つを包んでる仮想フレームが伸縮自在になればいいんでねえの
312デフォルトの名無しさん
垢版 |
2020/11/10(火) 14:18:15.62ID:3xGJBleZ
┏━━━━━━━━━━━━━┓
┃※───────────┐┃ ※目に見えないサイズ可変のフレーム
┃│         □□│┃
┃│         □□│┃
┃└───────────┘┃
┃┌───────────┐┃
┃│           │┃
┃│           │┃
┃└───────────┘┃
┗━━━━━━━━━━━━━┛
313デフォルトの名無しさん
垢版 |
2020/11/10(火) 19:19:14.70ID:kCGKGXm/
>> 312

助言ありがとうございます。

https://daeudaeu.com/tkinter_place/
を参考に1から作ってみました。
import tkinter
import tkinter.scrolledtext as tkst

# メインウィンドウ作成
app = tkinter.Tk()
app.geometry("600x400")

frame1 = tkinter.Frame(app, width=200, height=200)
editArea = tkst.ScrolledText(app,wrap= tkinter.WORD, width=20,height = 10)

frame1.pack()
editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5)
# メインループ
app.mainloop()



最初のコメントの説明がわかりにくかったですが、こんな感じのを
イメージしていました。

ありがとうございました。
314デフォルトの名無しさん
垢版 |
2020/11/11(水) 13:39:31.48ID:kNJZ67Nm
Tweepy分かる人いますか
err.266 This request looks like it might be automated. 〜
のメッセージなんだけどこれってどれくらいほっといたら解除されるんですかね
アプリ切り替えても各key変えても出てくるのでアカウントに対しての制限だとは思うんですが3時間経っても変わらなかったので
315デフォルトの名無しさん
垢版 |
2020/11/11(水) 13:45:28.69ID:/QH/ERIj
banされたんだろ
あきらめろ
316デフォルトの名無しさん
垢版 |
2020/11/11(水) 13:47:11.21ID:kNJZ67Nm
普通にTwitter公式クライアントでもWebでもツイートrtフォローdm全部できるんですよ
何故かtweepy経由だとダメなんです
317デフォルトの名無しさん
垢版 |
2020/11/11(水) 14:01:48.69ID:0Y2LevwY
User-Agent 変えてみ
2020/11/11(水) 14:07:37.84ID:bNkK+RZv
APIリクエスト数制限ではなくbotとみなされて制限されたんだから解除されるのはツイッター様の気分次第だろうな
319デフォルトの名無しさん
垢版 |
2020/11/11(水) 14:21:04.98ID:kNJZ67Nm
ua変更の方法から調べてきます
320デフォルトの名無しさん
垢版 |
2020/11/11(水) 16:34:56.51ID:kNJZ67Nm
わかりませんでした...
2020/11/11(水) 16:38:22.18ID:KNygXzpI
じゃあ諦めよっか
2020/11/11(水) 20:02:31.92ID:PGhUecNj
PythonでMySQLを扱いたいときはSQLAlchemy使うのが無難?
2020/11/11(水) 20:40:05.69ID:G5q6HZgE
pymysql使ってるけどそれで用が足りてる
2020/11/11(水) 21:07:26.30ID:cJF0V5Oo
無難を求めるなら変なレイヤを重ねない方がトラブルは少ないに決まってる
pymysqlに一票
325デフォルトの名無しさん
垢版 |
2020/11/11(水) 21:59:07.66ID:L1zlK20N
21時に試したけどダメでした
1週間くらい様子見ることにします
2020/11/11(水) 22:19:42.14ID:J97jBwV+
一番上にimportをまとめた方がいいみたいなベストプラクティスは無いですよね?
import foo
import bar
何らかの処理
import poo
みたいに書きたいのですが
2020/11/11(水) 23:04:11.15ID:9AXjOh84
impotent you
2020/11/11(水) 23:10:54.95ID:TtDOuafs
>>326
一応あるよ
pylintやflake8でチェックすれば分かる
2020/11/11(水) 23:27:50.57ID:J97jBwV+
>>328
そうなんですね

importとそのimportで読み込んだものを使うプログラムのセットで定型文として
冒頭にコピペしたいとき
必要のないimportが混じってるといちいち消さなきゃいけない or 必要なものは挿入しないといけないので
どうかなと思ったのですが
2020/11/11(水) 23:59:37.61ID:TtDOuafs
>>329
そのセットをモジュールとして扱えるようにして
冒頭でimportすればいいんじゃないの?
2020/11/12(木) 00:05:37.45ID:zPJeS2Gd
>>330
#!/usr/bin/env python
# -*- coding: utf-8 -*-
的なやつとか
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
してすぐ変数に代入したいときとか
(あくまでコピペする用途に関して)他のimportと干渉しないように書けるのかなぁと
2020/11/12(木) 00:26:37.68ID:zPJeS2Gd
ちなみに今は>>331みたいなのをエメットで出して
その下にそのプログラムで必要なimportを追記して
あとで整理(importだけ一番上でまとめる)しようかなと思っていますが
他のプログラムと比較したときにimportの差分がパットみ見づらく放置してしまっています
その程度の用途なら好きに書いても良さそうな気がしてきました
他にいい書き方、整理の仕方があるのかもしれません
2020/11/12(木) 00:55:30.25ID:I/DI2P2Q
>>329
>必要のないimportが混じってるといちいち消さなきゃいけない or 必要なものは挿入しないといけないので
前者はコードフォーマット機能で自動で消せるし
後者も自作ライブラリじゃなきゃインポート文を自動的に追加する機能があるから
これの作業をすること自体が少ない

ついでに言うとimport文を先頭にまとめるのはpep8でも決められてるから
その辺のコーディングルールに反する事になる

……というかimport文がまとまってないと必要なライブラリ/モジュールが一目で分からんくなるから
可読性がクソ落ちるぞ
2020/11/12(木) 01:35:01.77ID:HIqoM8fx
>>322
ORマッパで楽したいか、SQL直接書きたいかで変わる
求めるパフォーマンス次第だよ、パフォーマンス必要ならSQL直書きのほうがいいし
2020/11/12(木) 01:38:26.14ID:HIqoM8fx
>>332
importでgrepしてsortして一番上に入れ直せばいいんじゃない?
あとemmetでそれ入れたとしてもちゃんとカーソル動かしてimportの下に入れるんじゃダメなの?
2020/11/12(木) 02:06:15.41ID:aGTNjSDS
>>323
>>324
ありがとう。それも見てみる

>>334
それは書くべきだった。ごめん
非同期バッチで軽めのクエリ投げるだけなので楽な方が良い
2020/11/12(木) 06:17:24.73ID:uK53dAw4
from おじさん import 汚いチンコ ass hole
2020/11/12(木) 10:07:47.02ID:SLO+XJAz
>>334
自分はPythonとMysqlを同時に始めたからSQLのが便利だったな
ORMで検索すると一言目にはSQLを書かなくていい覚えなくていいって出るけど、メリットどころかなんでわざわざSQLをORMで書き直す必要があんのって感じだった
一度どっちかが便利だって思ったらそうそう変えられない。入り口によるのかもしれない
339デフォルトの名無しさん
垢版 |
2020/11/12(木) 11:41:49.27ID:ctukqySm
1秒後に空ファイルを作るコマンドをなげて、本処理はそこで止まらずに進みたいです。

空ファイルはとりあえず
p=pathlib.Path('xxx')
p.touch()
で作ろうと思っていますが、time.sleepを使うと本処理自身もとまってしまうので使えませんでした。
何か方法はありますか?
2020/11/12(木) 11:59:39.24ID:eGo0h3N+
非同期処理やな
341デフォルトの名無しさん
垢版 |
2020/11/12(木) 12:08:42.65ID:8fd8Jcut
いちおう
os.system('sleep 1;touch xxx')
でできますが、一度シェルに投げるのは気持ち悪いので、できればpython内で完結できればと思っています。
342デフォルトの名無しさん
垢版 |
2020/11/12(木) 12:57:01.06ID:f5BAQJxF
thread.run(pathlib.Path('xxx').touch)

touch() じゃなくて touch を渡す
343デフォルトの名無しさん
垢版 |
2020/11/12(木) 12:57:50.22ID:f5BAQJxF
thread.run(lambda : pathlib.Path('xxx').touch)
こっちかも知れん
2020/11/12(木) 13:17:42.67ID:OJpnz+qw
>>339
空ファイルの用途と、一秒後という理由がわからないけど、
本処理の前に作ってしまってはダメなの?
意外とそういう処理で済んじゃう場合もあるし
345デフォルトの名無しさん
垢版 |
2020/11/12(木) 13:33:35.86ID:8fd8Jcut
>>342,343
このthread関数は

from threading import Thread

ではなく、python2系にある全部小文字の

import thread

でしょうか?
346デフォルトの名無しさん
垢版 |
2020/11/12(木) 13:38:24.26ID:8fd8Jcut
>>344
空ファイルはフラグ用で、別に動いてる処理と連携させるものです。
即ファイルが作成されるとその後の工程でまずいので制御したいと考えています。
2020/11/12(木) 22:29:13.40ID:e5F/VTDC
Linux ではロック用途で、安全に一時ファイルを作る関数もある
348デフォルトの名無しさん
垢版 |
2020/11/13(金) 18:22:13.24ID:0B/9Af9p
Tkinterてwinで作ったのをmacで表示させると
レイアウトぐちゃぐちゃだけど

他のGUIライブラリも一緒?
Kivy、PyQt、wxPython、PySide辺りで試したことあるひと
教えてくり
2020/11/13(金) 18:55:20.26ID:NjVQsvkA
>>348
少なくともwxPythonでは乱れる
350デフォルトの名無しさん
垢版 |
2020/11/14(土) 00:06:13.71ID:XJ24TZhC
sizer使えばおk
351デフォルトの名無しさん
垢版 |
2020/11/14(土) 11:11:00.88ID:4Qzmu7NG
絶対配置はどのライブラリもダメてことだよね
OSごとのウインドウやフォントがそもそも違うから

ウイジットを画面いっぱいに埋めるように配置指定すればいけるてことでおk?
でもこれ不格好すぎるんだよね

で空白のためpx単位で指定したらもうアウトてことか…
2020/11/14(土) 11:32:45.42ID:T+rYowJl
pythonでマルチプラットフォームのGUIアプリを作ろうとしてる時点で道具の選択を間違ってるよね
353デフォルトの名無しさん
垢版 |
2020/11/14(土) 11:46:08.53ID:QzputhfI
ピクセル単位で指定しても良いけど面倒臭いだろ
それでもどうしてもというなら適当に余白造って
OS変わっても大丈夫な様に造るしかない
2020/11/14(土) 13:47:10.60ID:zVywz4sj
autolayout機能のあるライブラリがないの?
355デフォルトの名無しさん
垢版 |
2020/11/14(土) 13:51:47.27ID:4Qzmu7NG
相対値て設定できるライブラリてあるのかな?
2020/11/14(土) 13:57:01.44ID:l26MbGN7
>>354
オートレイアウト的なのだけ駆使してても
OSかえたらコレジャナーイ感が出ることは
まれどころじゃなく
よくある

>>352
んだ
2020/11/14(土) 14:13:44.32ID:5DwlosOq
初心者相手にデマ撒き散らすのが流行ってんのか?
これも売電推しのマスゴミのせいだな
2020/11/14(土) 18:59:50.44ID:G79Bc0pr
非同期?アプリを作りたいんだけど、async/awaitが難しすぎて理解できない
俺は無能なんでしょうか
やりたいことは以下
・PCの特定のフォルダを監視し、新規ファイル・更新ファイルがあるたびに
SQLiteのテーブルにファイル名とタイムスタンプを格納・更新する

これを単純なループで作るとPCが固まってしまうので
非同期アプリにする必要があると思った次第
2020/11/14(土) 19:11:37.26ID:DnZAmAgg
asyncioの惨状なんだあれ
リリース毎にDeprecatedだらけの迷走っぷり
折角async/awaitキーワードまで取り入れたのに名前が足りなくて関数名がおかしくなっとるやん
2020/11/14(土) 21:40:51.96ID:xhWL0SJ0
>>358
それは非同期にしなくてもsleep挟めばいいだけじゃないの?
2020/11/14(土) 22:43:31.52ID:HbMOH9xQ
自分はpyqt使ってマルチプラットフォームアプリ作ってます
自分はMacで,周りもMacの人が多いです
議論なされてるようにWinではレイアウトが微妙にズレてますが,大半の人が自分のレイアウトで使えてるから,まあいっかと思ってます
気にできるほど他の言語に明るくないので…
2020/11/14(土) 23:19:14.33
同階層のpyファイルを読み込むにはimport ○○とするらしいのですが
ふと思いました
○○.pyと、すでにインストール済みのモジュール名がかぶったときはどうするのでしょうか
あと、単に同階層の○○.pyをimportすることが明確な場合に、
とりあえず別のインストール済みのモジュールも総当りで?見つけようとするのは無駄な動きな気がしてしまうのですが問題はないのでしょうか
2020/11/15(日) 06:40:07.09ID:XAziMnEB
同階層のやつが優先されるのでお察しの通りエラーを吐く
なのでモジュールと同じ名前は避ける必要がある
2020/11/15(日) 06:55:14.69ID:o8f0udtd
>>360
残念ながらWindowsにはsleepがない…
2020/11/15(日) 10:47:50.77ID:AQ/HY5jp
え?
2020/11/15(日) 11:04:54.86ID:xwGOSzxB
>>358
うちもパイソンはじめて1ヶ月くらいのときに同期やろうとしたけどわけわかんなくて挫折したw
別の方法で解決したけどいつか再挑戦したい
2020/11/15(日) 11:56:58.93ID:4ZGD55Ii
>>364
んなわけあるかっ!
2020/11/15(日) 13:03:57.44ID:Q3DWzppx
plt.subplot(2, 2, 4)
plt.plot(ほにゃらら)
pltshow()
print('end')

みたいにplt.subplot使ってplt.show()するとplt.show()でグラフ表示した後フリーズして
print('end')
が実行されないのですが・・・、どうすればいいでしょう?
グラフ自体は望んだ通りのものが表示されているのですが、グラフウインドウを閉じてもprintが実行されません。
2020/11/15(日) 13:28:33.67ID://uHFZpN
>>364
なぜsleepコマンドだと思ったのか
370デフォルトの名無しさん
垢版 |
2020/11/15(日) 13:50:29.62ID:1NoBqfO6
フリーズはしていない
戻って来て欲しい時は
plt.draw()
371デフォルトの名無しさん
垢版 |
2020/11/15(日) 14:04:02.28ID:1NoBqfO6
ごめん間違った
この手順でやってみ
>>> from matplotlib import pyplot as plt
>>> plt.subplot(2, 2, 4)
>>> plt.plot([[1,2,3],[4,5,6]])
>>> plt.pause(0.1) # ここで表示されて 0.1 秒後に戻る
>>> plt.plot([[1,2,3],[4,5,8]])
>>> plt.gcf().canvas.draw() # 更新
2020/11/15(日) 15:07:46.36ID:tav0pD0x
安易にsleep使う素人が多すぎて困る。
2020/11/15(日) 16:53:25.64ID:lz+gXz1a
sleepの使いどころも知らない自称玄人さんジワるw
2020/11/15(日) 17:14:49.77ID:Q3DWzppx
>>371
できました。ありがとうございます。m(_ _)m
でもなんでできたのか、わからない・・・???

plt.show()
でなんでフリーズして

plt.pause(0.1)
plt.gcf()canvas.draw()
だと戻ってくるんでしょう?
2020/11/15(日) 17:25:25.17ID:U+/Dwi3J
フリーズはしていない
2020/11/15(日) 17:51:06.67ID:tav0pD0x
>>373
sleepなんか使う必要ないから。
2020/11/15(日) 20:09:31.44ID:Q3DWzppx
>>375
むむむ・・・
何が原因なんだろう・・・・・・
2020/11/15(日) 20:29:01.79ID:8j4ATkh0
ここにprintfがないとなぜか動かないんだ
2020/11/16(月) 12:36:25.59ID:A2ai6viK
>>348
pyqt5でも乱れる。俺はだいたいウィンドウをリサイズなしの大きさ固定にしてるけど、
フォントの関係か、だいたい乱れる(大きくは乱れない)。
デザイナーで微調整が必要だな。
380デフォルトの名無しさん
垢版 |
2020/11/16(月) 12:44:51.86ID:sF1WJXNT
https://support.microsoft.com/ja-jp/help/3025083/windows-scaling-issues-for-high-dpi-devices
https://www.eizo.co.jp/support/compati/software/win/windows_hidpi/
2020/11/16(月) 19:38:01.87ID:ZlvPcwtM
Pythonおじさんがマイクロソフトに入ったから、EXCELにPython同梱して操作できるようにしてくれ(´・ω・`)
2020/11/16(月) 19:45:47.18ID:ZYi19Xfa
普通にwatchdogモジュール使えばいいんじゃないの
383デフォルトの名無しさん
垢版 |
2020/11/16(月) 20:01:01.30ID:ysP24k7m
はえーそんなのあるんだ
2020/11/16(月) 21:09:34.49ID:lpvH3HhJ
>>382
watchdog使ったところでビジーループの問題は解決しない
2020/11/17(火) 10:43:44.47ID:KFJ2cj0W
>>384
無能には無理なんだろうな…w
2020/11/18(水) 15:35:14.76ID:cVTuS9Vl
ウェブアプリのレスポンスをjsonで返そうとして
res = '{"status":"{status_code}","error":"{error}"}'
return res.format(status="200",error="")
みたいにすると変数res内の{とformatの{が干渉してエラーが出てしまいます
なので
res = '"status":"{status_code}","error":"{error}"'
return '{'+res.format(status="200",error="")+'}'
としたのですが、、なんかかっこ悪い気がしてもやもやします・・
もっといい方法はないでしょうか
json.dumpsを使うと
res['status'] = 200
res['error'] = ''
の行が増えてしまうのでそのあたりが気になります
2020/11/18(水) 16:02:18.01ID:/USRxP5S
ちょっと何言ってるか分からないんだけど、
return json.dumps({“status":status_code,"error":error})って事ではないの?
2020/11/18(水) 16:19:03.18
>>387
ええ、関数化やモジュール化するまでもなければ簡潔に書ける方法はないかな
ということです
status_codeが200だけ出てくる場合なら別にそれでいいと思いますが
2020/11/18(水) 16:31:36.23ID:/USRxP5S
やっぱり何がしたいのかわからんわw
2020/11/18(水) 16:55:17.63ID:grk01deG
>>386
たぶん希望しているのはこういう事かな
res = '{{"status":"{status}","error":"{error}"}}'
https://docs.python.org/ja/3/library/string.html#formatstrings
2020/11/18(水) 16:59:39.36ID:cVTuS9Vl
>>390
で、できました!
"\{"とかで出来きず他の方法がありそうな気がしていましたが
{{だとは・・
ありがとうございました!
2020/11/18(水) 17:21:35.12ID:vHQTDRO5
res.format(status=500, error='Error: "foobar”’)とかするとバグらない?

素直に関数化するかクラス化したほうが良いと思うな
def res(status_code, error):
__return json.dumps({'status': status_code, 'error': error})

res(500, 'Error: "foobar"')
2020/11/18(水) 22:53:36.69ID:uoMUJNdk
確かにJSONで返すなら、ちゃんとパーサーにお願いしたほうが確実だよね
2020/11/18(水) 23:26:31.23ID:4/YKHsf6
ここに書いてある事がほとんど分からないんですが
本当に超初心者のスレですか?
2020/11/18(水) 23:45:00.61ID:hkPPdx4I
簡単に説明←簡単じゃない
初心者向け←初心者向けじゃない(書いてる奴が初心者)

よくあること
2020/11/18(水) 23:47:39.86ID:cVTuS9Vl
>>392,369
error以外のものを付加したいときとかは普通に関数化してますね
今回は例外処理含めstatsuとerrorがintとstrのみとわかっているので
よりスマートな書き方がないかなと模索してただけです
関数化するとプログラムを分けたときに
同じものを貼るのも、またはimportするのもあれだし、と思って。
その辺を気にしないうまい処理の仕方があるのかもしれませんが
2020/11/19(木) 06:48:28.38ID:SrLjxFgj
>>394
Pythonにはいろんな機能があるから、質問も多岐にわたるわけで
理解できないものがあって当然
JSONなんて使わない人は一生使わない機能だし
2020/11/19(木) 08:41:29.87ID:YoVNSJkp
>>272
Macならhomebrewでpyenvで管理するのが1番楽
anaconda使いたきゃpyenvの中で管理されてるわけだし、pyenvからanacondaの好きなバージョン入れりゃ良いだけ
399デフォルトの名無しさん
垢版 |
2020/11/19(木) 10:53:10.35ID:z88yTjzg
>>386 >>396
status_code=200
error="error"
res = str({"status":status_code,"error":error})
2020/11/19(木) 12:09:45.64ID:oRKf5Y34
>>399
それだとstr()が環境によるのか仕様かはわかりませんが
”が'で表示されてしまいますね
実際そのコードをサーバー立てた試験はしてませんが
以前、JSONをバックエンド側でシングルクオートで書くと
クライアント側でエラーが起きた記憶があります

あと、毎回status_codeとerrorを変数に置く必要もない気がします
もしstr()のシングルクエート化が問題なく
statusもerrorも固定であればもうこれでいいのでは
return str({"status":200,"error":"err"})

自分は簡単な場合はこんな感じです
res = '{{"status":{},"{}":"{}"}}'
#分岐
return res.format(200,"msg","ok")
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況