seanspotatobusinessPosts. 221 Bergabung. Sel 22 Mei 2012 11. 19 malam
Saya mencoba menggunakan beberapa kode yang telah saya salin dan tempel ke tengah sebuah skrip untuk mengubah perilakunya, tetapi saya tidak dapat menemukan cara yang valid untuk memodifikasinya sehingga berjalan tanpa kesalahan. Saya mengambil kode berikut yang disalin dan ditempel
Kode.
with requests.request('get', 'api.openweathermap.org/data/2.5/weather', timeout=30, headers=headers) as response: #this line is from my script with open('response.json', 'r') as data_file: #this line is from StackOverflow data = json.load(data_file) for element in data: element.pop('hours', None) with open('response.json', 'w') as data_file: data = json.dump(data, data_file) newData = response.json() #this line is from my script dan memodifikasinya menjadi iniKode.
with requests.request('get', 'api.openweathermap.org/data/2.5/weather', timeout=30, headers=headers) as response: data = response.json() for element in data: element.pop('pressure', None) element.pop('humidity', None) newData = data _Tapi itu tidak akan berjalan, mengembalikan kesalahan. AttributeError. objek 'str' tidak memiliki atribut 'pop'
Mengapa data adalah string? . Terima kasih
Raspberry Pi 3 B dan B+
PRETTY_NAME="Raspbian GNU/Linux 10 (perusak)"
NAMA="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
ghpPosts. 3038 Bergabung. Rabu 12 Juni 2013 12. 16:00 Lokasi. Stuttgart Jerman
Saat Anda mengurai json, Anda mendapatkan objek python bersarang, terdiri dari array dan/atau dict, bersarang di banyak level jika diperlukan
Kemudian terserah kode python untuk menavigasi di sepanjang struktur spesifik 'benda'. Tidak ada metode 'pilih' yang tersedia seperti yang Anda ketahui di database
Kode.
import json response = """ {"ignoreMe": "404", "data" : [ {"name": "Bob", "language": "English"}, {"name": "Sally", "language": "German"} ] } """ response_dict = json.loads(response) print(response_dict) languages = [] for listelement in response_dict['data']: languages.append( listelement['language']) print (languages) Anda dapat menulis pemindai rekursif dan mencari elemen tertentu di mana pun elemen itu ada. Biasanya tidak diperlukanKode.
import json response = """ {"ignoreMe": "404", "data" : [ {"name": "Bob", "language": "English"}, {"name": "Sally", "language": "German"}, [ { "language" : "deep nested" } ] ] } """ response_object = json.loads(response) print(response_object) # # recursive scanning # def scan_for_element( o, name): res = [] if isinstance(o, dict): for k in o: if k == name: res.append(o[k]) r = scan_for_element( o[k], name) res.extend( r) if isinstance(o, list): for k in o: r = scan_for_element( k, name) res.extend( r) return res result = scan_for_element(response_object, 'language') print("scan result", result)test_tup= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 1The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2________4import json response = """ {"ignoreMe": "404", "data" : [ {"name": "Bob", "language": "English"}, {"name": "Sally", "language": "German"}, [ { "language" : "deep nested" } ] ] } """ response_object = json.loads(response) print(response_object) # # recursive scanning # def scan_for_element( o, name): res = [] if isinstance(o, dict): for k in o: if k == name: res.append(o[k]) r = scan_for_element( o[k], name) res.extend( r) if isinstance(o, list): for k in o: r = scan_for_element( k, name) res.extend( r) return res result = scan_for_element(response_object, 'language') print("scan result", result)_4_______2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 5The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 7The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9____0____4_The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10]
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _3
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 5The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 7The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 0
# Remove nested records
# using isinstance() + enumerate() + loop
The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 3= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 6
The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 7 The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 8The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 9 # Python3 code to demonstrate working of0# Python3 code to demonstrate working of1
# Python3 code to demonstrate working of2# Python3 code to demonstrate working of3 # Python3 code to demonstrate working of4 # Python3 code to demonstrate working of5# Python3 code to demonstrate working of6The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6# Python3 code to demonstrate working of8
# Python3 code to demonstrate working of9The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 3= The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 3The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 # Remove nested records4
# Remove nested records_5
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4# Remove nested records7The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9# using isinstance() + enumerate() + loop0
Metode 2. Menggunakan tipe() metode
Python3
# Python3 code to demonstrate working of
# Remove nested records
# initialize tuple
test_tup= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 1The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2________4import json response = """ {"ignoreMe": "404", "data" : [ {"name": "Bob", "language": "English"}, {"name": "Sally", "language": "German"}, [ { "language" : "deep nested" } ] ] } """ response_object = json.loads(response) print(response_object) # # recursive scanning # def scan_for_element( o, name): res = [] if isinstance(o, dict): for k in o: if k == name: res.append(o[k]) r = scan_for_element( o[k], name) res.extend( r) if isinstance(o, list): for k in o: r = scan_for_element( k, name) res.extend( r) return res result = scan_for_element(response_object, 'language') print("scan result", result)_4_______2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 5The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 7The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9____0____4_The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10]
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _3
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0test_tup2 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 0
# Remove nested records
The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 3=test_tup9
The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 7 =1The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 9 =3
# Python3 code to demonstrate working of2# Python3 code to demonstrate working of3 # Python3 code to demonstrate working of4 =7=8=9 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 01
# Python3 code to demonstrate working of_9The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 03
The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 3=The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 07
# Remove nested records_5
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 11 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9# using isinstance() + enumerate() + loop0
KeluaranThe original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : (1, 5, 7, 10)
Metode 3. Menggunakan fungsi filter()+lambda
Python3
# Python3 code to demonstrate working of
# Remove nested records
# initialize tuple
test_tup= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 1The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2________4import json response = """ {"ignoreMe": "404", "data" : [ {"name": "Bob", "language": "English"}, {"name": "Sally", "language": "German"}, [ { "language" : "deep nested" } ] ] } """ response_object = json.loads(response) print(response_object) # # recursive scanning # def scan_for_element( o, name): res = [] if isinstance(o, dict): for k in o: if k == name: res.append(o[k]) r = scan_for_element( o[k], name) res.extend( r) if isinstance(o, list): for k in o: r = scan_for_element( k, name) res.extend( r) return res result = scan_for_element(response_object, 'language') print("scan result", result)_4_______2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 5The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 7The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9____0____4_The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10]
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _3
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0test_tup2 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 0
# Remove nested records
The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 3= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 43The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 45The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 47 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 48# Python3 code to demonstrate working of4_# Python3 code to demonstrate working of5The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] __4_______5__3____5_______
# Remove nested records_5
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 11 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9# using isinstance() + enumerate() + loop0
KeluaranThe original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _
Kompleksitas Waktu. PADA)
Ruang Bantu. PADA)
Metode 4. Menggunakan pemahaman daftar
Python3
# Python3 code to demonstrate working of
# Remove nested records
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _63
# initialize tuple
test_tup= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 1The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2________4import json response = """ {"ignoreMe": "404", "data" : [ {"name": "Bob", "language": "English"}, {"name": "Sally", "language": "German"}, [ { "language" : "deep nested" } ] ] } """ response_object = json.loads(response) print(response_object) # # recursive scanning # def scan_for_element( o, name): res = [] if isinstance(o, dict): for k in o: if k == name: res.append(o[k]) r = scan_for_element( o[k], name) res.extend( r) if isinstance(o, list): for k in o: r = scan_for_element( k, name) res.extend( r) return res result = scan_for_element(response_object, 'language') print("scan result", result)_4_______2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 5The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 7The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9____0____4_The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10]
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _63
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _3
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0test_tup2 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 0
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _63
# Remove nested records
The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 3= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 92The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 7 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 94The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 9 test_tup# Python3 code to demonstrate working of3 # Python3 code to demonstrate working of4 # Python3 code to demonstrate working of5________4____4_____1_______
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _63
# Remove nested records_5
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 11 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9# using isinstance() + enumerate() + loop0
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _11
KeluaranThe original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _
Kompleksitas Waktu. PADA)
Ruang Bantu. PADA)
Metode 4. Menggunakan pengurangan() dan lambda()
Python3
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _12 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 13The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 14 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 15
test_tup= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 1The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2________4import json response = """ {"ignoreMe": "404", "data" : [ {"name": "Bob", "language": "English"}, {"name": "Sally", "language": "German"}, [ { "language" : "deep nested" } ] ] } """ response_object = json.loads(response) print(response_object) # # recursive scanning # def scan_for_element( o, name): res = [] if isinstance(o, dict): for k in o: if k == name: res.append(o[k]) r = scan_for_element( o[k], name) res.extend( r) if isinstance(o, list): for k in o: r = scan_for_element( k, name) res.extend( r) return res result = scan_for_element(response_object, 'language') print("scan result", result)_4_______2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 5The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 6The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 7The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 2The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9____0____4_The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10]
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _3
The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 4The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0test_tup2 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 9The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 0
The original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10) 3= The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 15The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 0The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 47 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 43The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] 8 The original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10] _____________________________________________________________________________________________________________________________________________________________________________________________________________________________ E jelas