Argumentai vertinami iš JSON failo?

Turiu šį JSON faile:

14 мая '10 в 18:54 2010-05-14 18:54 michele nustatytas gegužės 14 d., 10 val. 18:54 2010-05-14 18:54
@ 10 atsakymų

Manau, kad Ignacio sako, kad jūsų JSON failas yra neteisingas. Turite [] kai turite {} . [] sąrašams, {} žodynams.

Taip turėtų atrodyti jūsų JSON failas, JSON failas net neužkrauna:

 { "maps": [ { "id": "blabla", "iscategorical": "0" }, { "id": "blabla", "iscategorical": "0" } ], "masks": { "id": "valore" }, "om_points": "value", "parameters": { "id": "valore" } } 

Tada galite naudoti savo kodą:

 import json from pprint import pprint with open('data.json') as f: data = json.load(f) pprint(data) 

Su duomenimis dabar galite rasti šias vertes:

 data["maps"][0]["id"] data["masks"]["id"] data["om_points"] 

Išbandykite ir pažiūrėkite, ar tai prasminga.

1929 m
14 мая '10 в 19:10 2010-05-14 19:10 atsakymą pateikė Justin Peel gegužės 10 d., 10:10, 2010-05-14 19:10

Jūsų data.json turėtų atrodyti taip:

 { "maps":[ {"id":"blabla","iscategorical":"0"}, {"id":"blabla","iscategorical":"0"} ], "masks": {"id":"valore"}, "om_points":"value", "parameters": {"id":"valore"} } 

Jūsų kodas turėtų būti:

 import json from pprint import pprint with open('data.json') as data_file: data = json.load(data_file) pprint(data) 
border=0

Atkreipkite dėmesį, kad tai veikia tik Python 2.6 ir naujesnėse versijose , nes tai priklauso nuo pateikimo . „Python 2.5“ naudokite from __future__ import with_statement , Python <= 2,4, žr.

Dabar taip pat galite pasiekti šias reikšmes:

 data["maps"][0]["id"] # will return 'blabla' data["masks"]["id"] # will return 'valore' data["om_points"] # will return 'value' 
294
29 нояб. Atsakymą pateikė Bengto lapkričio 29 d. 2012-11-29 23:10 '12 23:10 2012-11-29 23:10

„Justin Peel“ atsakymas yra tikrai naudingas, bet jei naudojatės „Python 3“, JSON skaitymas turėtų būti atliekamas taip:

 with open('data.json', encoding='utf-8') as data_file: data = json.loads(data_file.read()) 

Pastaba: vietoj json.load naudokite json.load . Python 3 json.loads priima eilutės parametrą. json.load priima failo parametrų objektą. data_file.read() grąžina eilutės objektą.

68
22 мая '15 в 6:44 2015-05-22 06:44 Geng Jiawen atsakymą pateikė gegužės 22 d. 15 val. 6:44 2015-05-22 06:44
 data = [] with codecs.open('d:\output.txt','rU','utf-8') as f: for line in f: data.append(json.loads(line)) 
53
12 мая '13 в 23:47 2013-05-12 23:47 atsakymą pateikė vartotojo1743724 gegužės 12 d. 13:47 2013-05-12 23:47

„Ultra JSON“ arba tiesiog „ujson“ gali atlikti [] buvimą JSON įvesties faile. Jei jūsų programoje skaitote įvesties JSON failą kaip JSON elementų sąrašą; pavyzdžiui, [{[{}]}, {}, [], etc...] ujsonas gali apdoroti savarankišką žodynų sąrašų tvarką, sąrašų žodynus.

Jūs galite rasti „Uson “ Python paketo rodyklėje, o API beveik identiška integruotai „ json Python“ bibliotekai.

ujson taip pat yra daug greičiau, jei įkeliate didelius JSON failus. Naudodami tą pačią nuorodą, kaip ir kitose „Python JSON“ bibliotekose, galite matyti našumo duomenis.

13
10 марта '15 в 0:38 2015-03-10 00:38 atsakymas pateikiamas moeabdol 10 d. 15 val. 0:38 2015-03-10 00:38

jei esate 3-ajame pythone, čia galite tai padaryti

 { "connection1": { "DSN": "con1", "UID": "abc", "PWD": "1234", "connection_string_python":"test1" } , "connection2": { "DSN": "con2", "UID": "def", "PWD": "1234" } } 

Kodas turėtų atrodyti taip, lyg failas connect.json turėtų būti didesnis.

 connection_file = open('connection.json', 'r') conn_string = json.load(connection_file) conn_string['connection1']['connection_string_python']) connection_file.close() >>>test1 
8
25 апр. atsakymas pateikiamas 25 m. 2017-04-25 20:42 '17 at 8:42 pm 2017-04-25 20:42
  # Here you go with modified json file: # data.json file : { "maps": [ { "id": "blabla", "iscategorical": "0" }, { "id": "blabla", "iscategorical": "0" } ], "masks": [{ "id": "valore" }], "om_points": "value", "parameters": [{ "id": "valore" }] } # You can call or print data on console by using below lines import json from pprint import pprint with open('data.json') as data_file: data_item = json.load(data_file) pprint(data_item) print(data_item['parameters'][0]['id']) #Output : #pprint(data_item) output as : {'maps': [{'id': 'blabla', 'iscategorical': '0'}, {'id': 'blabla', 'iscategorical': '0'}], 'masks': [{'id': 'valore'}], 'om_points': 'value', 'parameters': [{'id': 'valore'}]} #print(data_item['parameters'][0]['id']) output as : valore 
7
07 нояб. Atsakymas suteiktas JoboFive 07.11 . 2017-11-07 04:53 '17 at 4:53 2017-11-07 04:53

Šioje analizėje yra du tipai.

  1. Duomenų analizė iš failo pagal sistemos kelią
  2. JSON analizavimas iš nuotolinio URL.

Iš failo galite naudoti šiuos veiksmus

 import json json = json.loads(open('/path/to/file.json').read()) value = json['key'] print json['value'] 

Šiame straipsnyje paaiškinama, kaip vertinamos visos vertės ir gaunami duomenys, naudojant du scenarijus. JSON analizavimas naudojant „Python“

4
05 окт. atsakymą pateikė Bibin Wilson 05 okt. 2018-10-05 16:47 '18 at 4:47 pm 2018-10-05 16:47

Kaip python3 vartotojas ,

Svarbus skirtumas tarp load ir loads metodų, ypač kai jūs skaitote json duomenis iš failo.

Kaip nurodyta dokumentuose:

json.load:

Deserialize fp (teksto failas .read () - palaikymas arba dvejetainis failas, kuriame yra JSON dokumentas) į Python objektą naudojant šią konversijos lentelę.

json.loads:

json.loads: deserialize s (str, baitų arba bytearray, kurioje yra JSON dokumentas), į Python objektą naudojant šią konversijos lentelę.

„Json.load“ metodas gali tiesiogiai skaityti atidarytą „Json“ dokumentą, nes jis gali skaityti dvejetainį failą.

 with open('./recipes.json') as data: all_recipes = json.load(data) 

Todėl jūsų „Json“ duomenys yra prieinami pagal konversijos lentelę nurodytu formatu:

https://docs.python.org/3.7/library/json.html#json-to-py-table

3
30 нояб. Atsakymas pateikiamas muratgozel . 2018-11-30 12:21 '18, 12:21 val. 2018-11-30 12:21

Skaitydami „Json“ iš failo, visada naudinga išvalyti failus ir gauti failo eilutę, atskiriant naujus eilutės ir skirtukų simbolius

  clean_document = json_file.read().replace('\n', '').replace('\t', '') json_document = json.loads(clean_document) print("Len of Json ", len(json_document)) 
0
05 дек. Atsakymą pateikė pitaside 05 Dec 2017-12-05 04:48 '17 at 4:48 2017-12-05 04:48

Kiti klausimai apie „ žymes „ arba „ Užduoti klausimą“