我有「人」記錄了巨大的JSON對象......像這樣 - 牽強通過API調用使用要求:Pythonically連接兩個類似,但高度嵌套的JSON對象
{
people: [
{
foo: { key: value, ...},
bar: { key: value, ...},
person: { name: Harry, ...},
baz: { key: value, ...}
},
{
foo: { key: value, ...},
bar: { key: value, ...},
person: { name: Sally, ...},
baz: { key: value, ...}
},
{
... # many more records
}
]
}
而且到第二呼叫同樣的API產生的formmatted和標籤完全一樣的附加記錄...
{
people: [
{
foo: { key: value, ...},
bar: { key: value, ...},
person: { name: Jack, ...},
baz: { key: value, ...}
},
{
foo: { key: value, ...},
bar: { key: value, ...},
person: { name: Jill, ...},
baz: { key: value, ...}
},
{
... #many more records
}
]
}
我需要這些記錄連接成一個文件(或者說,分析和最終插入數據操作到數據庫) 。我需要保持全部記錄...我不想覆蓋JSON對象中的任何單個記錄。
這是很容易的,我的第二組的記錄包含第一個文件追加...但我得到:
{
people: [
{
foo: { key: value, ...},
bar: { key: value, ...},
person: { name: Harry, ...},
baz: { key: value, ...}
},
{
foo: { key: value, ...},
bar: { key: value, ...},
person: { name: Sally, ...},
baz: { key: value, ...}
},
{
... #many more records
}
]
}
{
people: [
{
foo: { key: value, ...},
bar: { key: value, ...},
person: { name: Jack, ...},
baz: { key: value, ...}
},
{
foo: { key: value, ...},
bar: { key: value, ...},
person: { name: Jill, ...},
baz: { key: value, ...}
},
{
... #many more records
}
]
}
...但這些字符:
]
}
{
people: [
...(在第一個響應中最後一條記錄的末尾加上缺失的逗號)使其無效JSON。
我該如何正確連接這兩個JSON對象 - 即將它們寫入文件中作爲一個大的格式正確且有效的JSON對象?
什麼是最優化的方式?我認爲最好從API響應之前的中去除不需要的字段,以連接這兩個對象並將它們寫入文件。但是 - 如果我只是想刪除不需要的字符,他們是寫入文件...我怎麼也這樣做呢?
我試過.replace(),.strip(),使用正則表達式考慮,試圖將數據粘貼到列表中,並使用列表理解,嘗試了詞典理解和幾個生成器。不完全確定什麼是最好的和最習慣的行爲是...
但是你給格式化的代碼是不是有效的JSON既不是有效的Python字典。 –
你有沒有試過[json.dump](https://docs.python.org/2/library/json.html#json.dump)? –
你爲什麼不把'人員列表合併爲一個? –