3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
像這樣解析每一行:
with open('input.json') as f:
for line in f:
obj = json.loads(line)

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
因?yàn)槟奈募皇怯行У?JSON。您必須逐行讀取文件,然后將每一行單獨(dú)轉(zhuǎn)換為對(duì)象。
或者,您可以像這樣轉(zhuǎn)換文件結(jié)構(gòu)...
[
{
"value": 0.97,
"key_1": "value1",
"key_2": "value2",
"key_3": "value3",
"key_11": "2019-01-01T00:05:00Z"
},
{
"value": 0.97,
"key_1": "value1",
"key_2": "value2",
"key_3": "value3",
"key_11": "2019-01-01T00:05:00Z"
},
{
"value": 0.97,
"key_1": "value1",
"key_2": "value2",
"key_3": "value3",
"key_11": "2019-01-01T00:05:00Z"
}
]
它將是一個(gè)有效的 JSON 文件。

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
正如 tanaydin 所說(shuō),您失敗的輸入不是有效的 json。它應(yīng)該是這樣的:
[
{
"value":0.97,
"key_1":"value1",
"key_2":"value2",
"key_3":"value3",
"key_11":"2019-01-01T00:05:00Z"
},
{"value":0.97,"key_1":"value1","key_2":"value2","key_3":"value3","key_11":"2019-01-01T00:05:00Z"},
{"value":0.97,"key_1":"value1","key_2":"value2","key_3":"value3","key_11":"2019-01-01T00:05:00Z"}
]
我假設(shè)您通過(guò)迭代對(duì)象列表并調(diào)用json.dumps每個(gè)對(duì)象來(lái)創(chuàng)建 json 輸出。您應(yīng)該創(chuàng)建字典列表,然后調(diào)用json.dumps整個(gè)列表。
list_of_dicts_to_jsonify = {}
object_attributes = ['value', 'key_1', 'key_2', 'key_3', 'key_11']
for item in list_of_objects:
# Convert object to dictionary
obj_dict = {}
for k in object_attributes:
obj_dict[k] = getattr(item, k) or None
list_of_dicts_to_jsonify.append(obj_dict)
json_output = json.dumps(list_of_dicts_to_jsonify)
添加回答
舉報(bào)