簡體   English   中英

如何使用 python 在 excel 文件中寫入數據

[英]How to write data in an excel file using python

我提出了一個 API 請求來提取一些文章正文和 ID。 我想將它們拉入 excel 文件,其中在第一列顯示 id,在下一列顯示相應的主體。

我設法做到了這一點,但由於某種原因,excel 中的格式不正確。 我想在這里提取很多數據,但我想在單獨的單元格中顯示它們中的每一個。

我可以專門要求我的腳本自動轉置數據嗎?

import requests
import csv
import unicodedata
import getpass
import xlsxwriter 

url = 'https://.../articles.json'

workbook = xlsxwriter.Workbook('bodies.xlsx') 
worksheet = workbook.add_worksheet() 


output_1 = []

output_2 = []


listOf = ([output_1],[output_2])
 

while url:
    user = 'email@email.com'
    pwd = '1234'
    response = requests.get(url, auth=(user, pwd))
    data = response.json()
    for article in data['articles']:
        article_id = article['id']
        body = article['body']
        decode_1 = int(article_id)
        decode_2 = unicodedata.normalize('NFKD', body)
        output_1.append(decode_1)
        output_1.append(decode_2)

    print(data['next_page'])
    url = 'https://.../articles.json' and data['next_page']

row = 0
col = 0
for output_1, output_2 in (listOf): 
    worksheet.write_row(row, col, output_1) 
    worksheet.write_column(col, col + 1, output_2) 
    col += 1
  
workbook.close()

更新:

所以基本上在我的腳本中,我正在閱讀一個看起來像這樣的 json

"per_page": 30,
"previous_page": null,
"articles": [
        {
            "id": 360239848018,
            "url": "https://.../articles/360239848018.json",
            "html_url": "https://...",
            "author_id": 5201232,
            "body": "<div class....a lot of html" }

看起來您使用共享的代碼抓取的所有數據最終都在output_1中,而output_2是空的。

由於您希望將article_id放在一個列中,將內容放在另一列中,我建議將內容存儲在output_2而不是output_1中。

除此之外,您還在 output_1 上使用output_1 write_row() 根據文檔(強調我的):

從 (row, col) 開始寫入一行數據。

但聽起來你想把它寫成一個專欄。

要記住的另一件事是您的listOf是一個包含兩個列表的元組。 迭代它不會讓你走得太遠。

綜上所述,這應該是可行的:

import csv
import requests
import unicodedata
import xlsxwriter 

url = 'https://.../articles.json'

output_1 = []
output_2 = []

while url:
    user = 'email@email.com'
    pwd = '1234'
    response = requests.get(url, auth=(user, pwd))
    data = response.json()
    for article in data['articles']:
        article_id = article['id']
        body = article['body']
        decode_1 = int(article_id)
        decode_2 = unicodedata.normalize('NFKD', body)
        output_1.append(decode_1)
        output_2.append(decode_2)
      # ^^^^^^^^
      # This is output_2 now.

    print(data['next_page'])
    url = 'https://.../articles.json' and data['next_page']


workbook = xlsxwriter.Workbook('bodies.xlsx') 
worksheet = workbook.add_worksheet()

row = 0
col = 0

worksheet.write_column(row, col, output_1)
#         ^^^^^^^^^^^^
#         use write_column instead of write_row
worksheet.write_column(row, col + 1, output_2)

workbook.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM