[英]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.