Baca file dan simpan di kamus python

Pertama, terima kasih telah menempelkan kode Anda dan mencoba memformatnya. Anda hampir melakukannya dengan benar, Anda hanya perlu menggunakan 3 backticks (`) alih-alih apostrof ('). Jika Anda dapat mengedit posting Anda sehingga ditampilkan dengan benar, itu bagus sekali, jika tidak, kami tidak dapat memastikan seperti apa kode Anda sebenarnya dan juga tidak dapat dengan mudah menyalin-menempelkannya sendiri

Kedua, Anda mungkin harus mempertimbangkan untuk menggunakan modul csv. Ini dirancang untuk membaca dan menulis data seperti ini dan menangani sebagian besar penguraian untuk Anda

https. //dokumen. python. org/3/perpustakaan/csv. html

Meskipun jika Anda mengikuti rute ini, Anda harus melakukan beberapa pekerjaan ekstra karena kamus dan daftar bersarang Anda akan disimpan sebagai string

Apa yang Anda lakukan dengan data ini? . Apakah Anda akan mempertimbangkan format file yang berbeda?

https. //dokumen. python. org/3/library/json. html

Contoh
File pokemons.txt_ Anda akan terlihat seperti ini

{
    "bulbasaur": {
        "fee": 25,
        "powers": [
            "grass"
        ],
        "quantity": 5
    },
    "charmander": {
        "fee": 100,
        "powers": [
            "fire"
        ],
        "quantity": 3
    },
    "gyrados": {
        "fee": 1000,
        "powers": [
            "water",
            "flying"
        ],
        "quantity": 1
    },
    "squirtle": {
        "fee": 50,
        "powers": [
            "water"
        ],
        "quantity": 2
    }
}

dan Anda akan menggunakan kode ini untuk membacanya dan menyimpannya

import json

database_filename = 'pokemons.txt'
with open(database_filename) as file:
    pokemon = json.load(file)


def save():
    with open(database_filename, 'w') as f:
        json.dump(pokemon, f, sort_keys=True, indent=4)
_

Selain komentar di atas, Anda mungkin ingin mempertimbangkan pustaka Pandas yang populer, yang membuat bekerja dengan data tabular jauh lebih mudah. Anda dapat membaca file CSV Anda menjadi Pandas DataFrame dalam satu baris, df = pandas.read_csv(database_filename, names=['quantity', 'fee', 'powers'], index_col=0), dan itu akan secara otomatis mengonversi semua tipe data untuk Anda. Anda kemudian dapat mengeluarkannya ke dict Python dalam format yang ditentukan dengan df.to_dict(orient='index'), ke file JSON dengan

import json

database_filename = 'pokemons.txt'
with open(database_filename) as file:
    pokemon = json.load(file)


def save():
    with open(database_filename, 'w') as f:
        json.dump(pokemon, f, sort_keys=True, indent=4)
0 atau ke CSV asli Anda dengan
import json

database_filename = 'pokemons.txt'
with open(database_filename) as file:
    pokemon = json.load(file)


def save():
    with open(database_filename, 'w') as f:
        json.dump(pokemon, f, sort_keys=True, indent=4)
1. Anda dapat mengurutkan df Anda dengan
import json

database_filename = 'pokemons.txt'
with open(database_filename) as file:
    pokemon = json.load(file)


def save():
    with open(database_filename, 'w') as f:
        json.dump(pokemon, f, sort_keys=True, indent=4)
_2

Namun, ada satu masalah potensial dengan pendekatan ini atau yang sebelumnya disarankan berdasarkan csv—Anda memiliki sejumlah variabel

import json

database_filename = 'pokemons.txt'
with open(database_filename) as file:
    pokemon = json.load(file)


def save():
    with open(database_filename, 'w') as f:
        json.dump(pokemon, f, sort_keys=True, indent=4)
4 bidang, yang sepertinya ingin Anda baca sebagai daftar bersarang. Membawa sedikit pengetahuan khusus domain, sepertinya ini sesuai dengan "Tipe" Pokemon, yang menurut Bulbapedia, Pokemon hanya dapat memiliki satu atau dua jenis. Jadi, cara paling sederhana untuk mengatasinya adalah dengan mendeklarasikan dua kolom,
import json

database_filename = 'pokemons.txt'
with open(database_filename) as file:
    pokemon = json.load(file)


def save():
    with open(database_filename, 'w') as f:
        json.dump(pokemon, f, sort_keys=True, indent=4)
5 dan
import json

database_filename = 'pokemons.txt'
with open(database_filename) as file:
    pokemon = json.load(file)


def save():
    with open(database_filename, 'w') as f:
        json.dump(pokemon, f, sort_keys=True, indent=4)
6, dan Pandas (atau csv) akan mengisi kolom kedua dengan nilai penuh jika tidak ada. Tentu saja, itu tidak memberi Anda daftar dalam struktur data keluaran Anda, tetapi jauh lebih mudah untuk dikerjakan; . g. sesuatu seperti
import json

database_filename = 'pokemons.txt'
with open(database_filename) as file:
    pokemon = json.load(file)


def save():
    with open(database_filename, 'w') as f:
        json.dump(pokemon, f, sort_keys=True, indent=4)
_8

Bagaimana Anda membaca file dan memasukkannya ke dalam kamus dengan Python?

Gunakan Fungsi split() untuk Membaca File Menjadi Kamus dengan Python . Gunakan Fungsi strip() Bersamaan Dengan Fungsi split() untuk Membaca File Menjadi Kamus dengan Python. Gunakan Pemahaman Kamus untuk Membaca File Menjadi Kamus dengan Python.

Bagaimana cara menyimpan file teks sebagai kamus dengan Python?

Jika kita ingin menulis objek kamus, kita perlu mengubahnya menjadi string menggunakan json atau membuat cerita bersambung. .
Impor Json
Buat Kamus dalam rangka menyebarkannya ke dalam file teks
Buka file dalam mode tulis
Gunakan json. dumps() untuk string json

Bagaimana cara menyimpan data dalam kamus dengan Python?

Cara paling dasar untuk menyimpan kamus dengan Python adalah menyimpannya sebagai string dalam file teks. .
Membuka file dalam mode tulis/tambahkan teks
Mengubah kamus menjadi string
Memasukkan string yang dikonversi ke dalam file menggunakan fungsi tulis

Bagaimana cara menyimpan kamus di csv Python?

Cara termudah adalah membuka file csv dalam mode 'w' dengan bantuan fungsi open() dan menulis pasangan nilai kunci dalam bentuk dipisahkan koma. The csv module contains DictWriter method that requires name of csv file to write and a list object containing field names.