以下のように表示されます。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 を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。 以下もご興味があるかもしれません:
|
>>: CSS3 FlexBox の伸縮自在なレイアウトを 10 分で理解する
目次序文1. レスポンシブシステムの重要な要素1. データの変更を監視する方法2. 依存関係を収集す...
CocosCreator バージョン: 2.3.4 Cocos には List コンポーネントがない...
mysql maxとwhereの間の実行の問題SQLを実行します: テーブル「grades」を作成し...
今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりで...
目次1. ローカルストレージを構築する2. npmパッケージを作成し、プライベートリポジトリにアップ...
1. はじめに会社のプロジェクトを引き継いで2年になります。今では毎回プロジェクトを起動するのに1分...
序文MySQL マスター スレーブ レプリケーションの遅延は、業界では長年の問題となっています。遅延...
0. 事前準備BIOS でセキュア ブートを無効にします。無効にしないと、サードパーティ ソースを...
innobackupex を使用してバックアップする際に MySQL がサーバーに接続できない場合は...
序文この記事では主に、MySQL ストレージ テーブル エラー「java.sql.SQLExcept...
繰り返し: サイト全体で特定のページ デザイン スタイルを繰り返します。繰り返し要素としては、特定の...
目次序文SVGを生成するSVGスプライトの紹介プロジェクトアイコンを取得するプロジェクトのセットアッ...
Dockerインストール後のネットワークタイプ [root@insure updev]# docke...
この記事では、ログイン認証を実装するためのExpressの具体的なコードを例として紹介します。具体的...
最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...