按照我的结构在 Excel 中插入一个 JSON 文件
Inserting a JSON file inside an Excel, following my structure
我正在尝试将此 JSON 文件转储到我用 Openpyxl 制作的 Excel 文件中。
这是我的 JSON 文件的示例:
[
{
"id": 3,
"url": "https://www.immobiliare.it/annunci/p-161271/",
"titolo": "Appartamenti e Attici di nuova costruzione in vendita a Roma",
"prezzo": "da \u20ac 165.000 - \u20ac 254.000",
"citta": "Roma",
"zona": "Infernetto",
"via": "Via Croviana, 89",
"tipologia": "",
"superficie": "",
"posti_auto": "",
"piano": "",
"piani_edificio": "",
"balcone": 0,
"cantina": 0,
"terrazza": 0,
"giardino_privato": 0,
"taverna": 0,
"esposizione_esterna": 0
},
{
"id": 10,
"url": "https://www.immobiliare.it/annunci/88266101/",
"titolo": "Trilocale via Scigliano, Morena, Roma",
"prezzo": "\u20ac 260.000\u20ac 280.000(-7,1%)",
"citta": "Roma",
"zona": "Morena",
"via": "Via Scigliano",
"tipologia": "Appartamento",
"superficie": "101 m\u00b2",
"posti_auto": "",
"piano": "1\u00b0",
"piani_edificio": "1 piano",
"balcone": 1,
"cantina": 0,
"terrazza": 0,
"giardino_privato": 0,
"taverna": 0,
"esposizione_esterna": 1
},
这里是数据需要结束的地方的截图:
基本上我发现困难的是准确地告诉去哪里和放置数据。我考虑了这个过程,它基本上应该按照这个顺序进行:
- 对于每个 ID 对象,在到达下一个 ID 之前,数据为每列 1 个。
这是我的代码:
riga_dump, colonna_dump = 3, 2
for value in self.json:
cell = scheda_1.cell(row=riga_dump, column=colonna_dump)
cell.alignment = Alignment(horizontal='center')
cell.font = Font(color='00000000')
cell.value = value
colonna_dump += 1
if colonna_dump == 17:
riga_dump += 1
问题是,通过这种方式,我试图将整个 ID 对象放入一个单元格中...
不确定是否正确理解您的问题(因为我看不出任何问题,这似乎令人沮丧,尤其是在没有答案的情况下)。因此,您可能只需要添加外循环来迭代对象。像这样:
riga_dump, colonna_dump = 3, 2
for obj in json:
for value in obj:
cell = scheda_1.cell(row=riga_dump, column=colonna_dump)
cell.alignment = Alignment(horizontal='center')
cell.font = Font(color='00000000')
cell.value = value
colonna_dump += 1
riga_dump += 1
colonna_dump = 2 # or = 0 ? it's hard to tell from your screenshot
我正在尝试将此 JSON 文件转储到我用 Openpyxl 制作的 Excel 文件中。
这是我的 JSON 文件的示例:
[
{
"id": 3,
"url": "https://www.immobiliare.it/annunci/p-161271/",
"titolo": "Appartamenti e Attici di nuova costruzione in vendita a Roma",
"prezzo": "da \u20ac 165.000 - \u20ac 254.000",
"citta": "Roma",
"zona": "Infernetto",
"via": "Via Croviana, 89",
"tipologia": "",
"superficie": "",
"posti_auto": "",
"piano": "",
"piani_edificio": "",
"balcone": 0,
"cantina": 0,
"terrazza": 0,
"giardino_privato": 0,
"taverna": 0,
"esposizione_esterna": 0
},
{
"id": 10,
"url": "https://www.immobiliare.it/annunci/88266101/",
"titolo": "Trilocale via Scigliano, Morena, Roma",
"prezzo": "\u20ac 260.000\u20ac 280.000(-7,1%)",
"citta": "Roma",
"zona": "Morena",
"via": "Via Scigliano",
"tipologia": "Appartamento",
"superficie": "101 m\u00b2",
"posti_auto": "",
"piano": "1\u00b0",
"piani_edificio": "1 piano",
"balcone": 1,
"cantina": 0,
"terrazza": 0,
"giardino_privato": 0,
"taverna": 0,
"esposizione_esterna": 1
},
这里是数据需要结束的地方的截图:
基本上我发现困难的是准确地告诉去哪里和放置数据。我考虑了这个过程,它基本上应该按照这个顺序进行:
- 对于每个 ID 对象,在到达下一个 ID 之前,数据为每列 1 个。
这是我的代码:
riga_dump, colonna_dump = 3, 2
for value in self.json:
cell = scheda_1.cell(row=riga_dump, column=colonna_dump)
cell.alignment = Alignment(horizontal='center')
cell.font = Font(color='00000000')
cell.value = value
colonna_dump += 1
if colonna_dump == 17:
riga_dump += 1
问题是,通过这种方式,我试图将整个 ID 对象放入一个单元格中...
不确定是否正确理解您的问题(因为我看不出任何问题,这似乎令人沮丧,尤其是在没有答案的情况下)。因此,您可能只需要添加外循环来迭代对象。像这样:
riga_dump, colonna_dump = 3, 2
for obj in json:
for value in obj:
cell = scheda_1.cell(row=riga_dump, column=colonna_dump)
cell.alignment = Alignment(horizontal='center')
cell.font = Font(color='00000000')
cell.value = value
colonna_dump += 1
riga_dump += 1
colonna_dump = 2 # or = 0 ? it's hard to tell from your screenshot