Pythonは出力をcsv操作に書き込む

Pythonは出力をcsv操作に書き込む

以下のように表示されます。

 def test_write(self):
 フィールド=[]
 fields.append(注文コード)
 open(r'./test001.csv', 'a',newline="") を f として実行します:
  ライター = csv.writer(f)
  writer.writerow(フィールド)

リストを定義する: 次に、リストに書き込むデータを追加します

a #次の行にデータを追加する

newline='' //各行の中央にある空白行を削除します。追加しないと、行間にスペースができます。

改行を追加

それなし:

補足: Pythonを使用してJSONデータをCSV形式に変換する

.json ファイルに保存されているデータが次のとおりであると仮定します。

{"type": "Point", "link": "http://www.dianping.com/newhotel/22416995", "coordinates": [116.37256372996957, 40.39798447055443], "category": "Economy", "name": "Beijing Hetang Villa", "count": "278", "address": "Ansi Road, Huanghuacheng Village, Huairou District, Beijing", "price": "380"}
{"type": "Point", "link": "http://www.dianping.com/newhotel/19717653", "coordinates": [116.56881588256466, 40.43310967948417], "category": "Economy", "name": "Mutianyu Great Wall Yushifu Country Hotel", "count": "89", "address": "北京市懐柔区渤海鎮衛店村(Mutianyu Great Wallの下流3キロ、淮皇路付近)", "price": "258"}
{"type": "Point", "link": "http://www.dianping.com/newhotel/58365289", "coordinates": [116.62874974822378, 40.45610264855833], "category": "Economy", "name": "北京米涛尔子旅館", "count": "119", "address": "北京市懐柔区神塘嶼風景区下関地11号", "price": "549"}

ここで、上記のデータを csv 形式で保存する必要があります。辞書のキーは csv 内の属性名であり、辞書の値は csv 内の属性に対応する値です。

json のキーに従って csv を生成するだけであれば、操作は比較的簡単です。以下の方法に従ってください。

#-*-コーディング:utf-8-*-
csvをインポート
jsonをインポート
インポートシステム
コーデックをインポートする
def trans(パス):
  jsonData = codecs.open(path+'.json', 'r', 'utf-8')
  # csvfile = open(path+'.csv', 'w') # ここで書き込むと、書き込まれたファイルに空白行が含まれるようになります # csvfile = open(path+'.csv', 'wb') # python2 の場合 csvfile = open(path+'.csv', 'w', newline='') # python3 の場合 writer = csv.writer(csvfile, delimiter='\t', quoting=csv.QUOTE_ALL)
  フラグ = True
  jsonData 内の行の場合:
    dic = json.loads(行[0:-1])
    フラグの場合:
      # 属性リストを取得する keys = list(dic.keys())
      印刷(キー)
      writer.writerow(keys) # 属性リストを csv に書き込む flag = False
    # jsonデータの各行を読み取り、値データを1行ずつcsvに書き込みます writer.writerow(list(dic.values()))
  jsonData.close()
  csvファイルを閉じる()
__name__ == '__main__' の場合:
  path=str(sys.argv[1]) # パスパラメータを取得する print (path)
  トランス(パス)

python3で実行し、コマンドラインを入力します

python C:\Users\MaMQ\Documents\jsonToCsv.py C:\Users\MaMQ\Documents\data\geoFood

3 番目のパラメータは、サフィックスを削除した、変換するファイルのパスと名前です。ファイルを実行すると、変換された csv ファイルを取得できます。

json ファイル内の各辞書のキー フィールドを変更する必要がある場合、たとえば、上記の辞書の座標内の経度と緯度のデータを取り出して x と y のデータとして保存する必要がある場合は、次の方法に従います (この方法では、各属性の表示順序も調整できるため、より適切です)。

csvをインポート
jsonをインポート
インポートシステム
コーデックをインポートする
def trans(パス):
  jsonData = codecs.open(path+'.json', 'r', 'utf-8')
  # csvfile = open(path+'.csv', 'w') # ここで書き込むと、書き込まれたファイルに空白行が含まれるようになります # csvfile = open(path+'.csv', 'wb') # python2 の場合 csvfile = open(path+'.csv', 'w', newline='') # python3 の場合 writer = csv.writer(csvfile, delimiter='\t', quoting=csv.QUOTE_ALL)
  キー=['id', 'name', 'category', 'price', 'count', 'type', 'address', 'link', 'x', 'y']
  writer.writerow(キー)
  私 = 1
  jsonData内のdicの場合:
    dic = json.loads(dic[0:-1])
    x = dic['座標'][0]
    y = dic['座標'][1]
    writer.writerow([str(i),dic['name'],dic['category'],dic['price'],dic['count'],dic['type'],dic['address'],dic['link'],x,y])
    私 += 1
  jsonData.close()
  csvファイルを閉じる()
__name__ == '__main__' の場合:
  パス = str(sys.argv[1])
  印刷 (パス)
  トランス(パス)

操作方法は上記と同様です。

json ファイルは Dianping.com からクロールしたデータであり、保存形式は utf-8 です。 json データの読み取りには codecs パッケージを使用することをお勧めします。エンコード方法を指定できます。

jsonData = codecs.open(パス + '.json', 'r', エンコーディング = 'utf-8')

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Pythonを使用してCSVファイルにデータを書き込む方法
  • Python で csv または xlsx ファイルにデータを書き込む 3 つの方法
  • Pythonでclassification_reportをcsvファイルに出力する方法

<<:  略語マークと頭字語マーク

>>:  CSS3 FlexBox の伸縮自在なレイアウトを 10 分で理解する

推薦する

MySQL ビューの原理と基本操作例

この記事では、例を使用して、MySQL ビューの原理と基本操作を説明します。ご参考までに、詳細は以下...

HTML に埋め込まれた Flash HTML ウェブページ コードに Flash ファイルを埋め込むソリューション (パート 2)

上の記事で、SWFObject V1.5 の使い方の紹介は一旦終了です。これから、SWFObject...

モバイルデバイス用のメタタグ設定の完全なリスト

序文以前フロントエンドを勉強していたとき、メタタグに対する私の理解はこの一文だけでした。 <メ...

Linux SecureCRT の文字化けの解決方法

SecureCRT が文字化けした文字を表示する状況を見てみましょう。例えば: ではリセットしてみま...

Ubuntu にグラフィック ドライバーが正常にインストールされたかどうかを確認する方法

次のコマンドを実行します: glxinfo | grep レンダリング結果が「はい」の場合、グラフィ...

JavaScript の find() メソッドと filter() メソッドの違いのまとめ

目次序文JavaScript find() メソッドJavaScript filter() メソッド...

MySQLデータクエリが多すぎるとOOMが発生するかどうかについての簡単な議論

目次サーバー層でのフルテーブルスキャンの影響InnoDB におけるフルテーブルスキャンの影響Inno...

PHP クラスにおける static と self の違いの簡単な分析

メソッドが定義されているクラスに応じて、現在のクラスへの静的参照を取得するには、self:: または...

CentOS7にNginxを素早くインストールする方法を教えます

目次1. 概要2. Nginxインストールパッケージをダウンロードする3. 依存パッケージをインスト...

TypeScriptジェネリックの使用

目次1. 使いやすい2. 関数内でジェネリックを使用する3. クラス内でジェネリックを使用する4. ...

基礎知識: ウェブサイトのアドレスの前の http はどういう意味ですか?

HTTPとは何ですか?ウェブサイトを閲覧したいときは、ブラウザのアドレス バーにウェブサイトのアド...

スマートCSSを使用して、ユーザーのスクロール位置に基づいてスタイルを適用します。

現在のスクロール オフセットを html 要素の属性に追加することで、現在のスクロール位置に基づいて...

JS を使用して HTML で回転するクリスマスツリーを実装する

<!DOCTYPE ヘムル パブリック> <html> <ヘッド&g...

MySQL ページング制限の実用的な最適化

序文クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要があり...

HTML面接の質問の要約

1. doctypeの役割、厳密モードと混合モードの違い、そしてその重要性1. 構文形式: <...