簡體   English   中英

我的python代碼未將JSON數據正確導入CSV

[英]My python code is not importing JSON data correctly to CSV

所以我試圖從文件中導入json數據,並想導出為CSV文件。 只有很少的標簽(如“作者”和“標題”)可以在此代碼中正常工作,但是當我嘗試將其用於“抽象”時,它將csv的新列中的抽象單詞分割開來。 在嘗試split()之前,它對每個字符都執行相同的操作

這是我的代碼

import json
import csv
filename="abc.json"
csv_file= open('my.csv', 'w',encoding="utf-8")
csvwriter = csv.writer(csv_file)
with open(filename, 'r') as f:
     for line in f:
         data = json.loads(line)
         if 'abstract' in data:
             csvwriter.writerow(data['abstract'].split())
         elif 'authors' in data:
               csvwriter.writerow(data['authors'])
         else:
              f="my"

可以從此處http://s000.tinyupload.com/?file_id=28925213311182593120下載示例json文件

就像Ben所說的那樣,很高興看到JSON文件中的示例,但是問題可能出在您如何嘗試拆分抽象數據上。 使用您現在正在做的事情,您正在要求它在每個空間進行拆分。 如果要按行拆分,請嘗試以下操作:

if 'abstract' in data:
         csvwriter.writerow(data['abstract'].split(","))

這件事發生在原因abstract是因為價值abstract為一個字符串(相反,價值authors是一個列表)。 writerow收到一個可迭代對象,當您在python中迭代一個字符串時,每次都會得到一個字母。

因此,在使用split之前,python將字符串取為字符串並將其分為字母,從而每列給您一個字母。 使用split時,您將字符串轉換為單詞列表,因此在對其進行迭代時,每次都會得到一個單詞。

如果.split('.')句點分割abstract ,請使用.split('.')做同樣的事情

暫無
暫無

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

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