簡體   English   中英

將多個 Twitter JSON 文件轉換為一個 CSV

[英]Converting multiple Twitter JSON files into one single CSV

我使用 Twitter API 抓取了大量 Twitter 數據。 現在我將 JSON 文件存儲在我的計算機上,我想將它們(大約 1000 個文件)合並到一個 csv 文件中以進行進一步處理。

每個 JSON 文件如下所示:

 200 { "data": [ { "author_id": "34571035", "created_at": "2019-12-29T20:02:19.000Z", "id": "1211376921407369216", "text": "RT @ConnectedCarMag: Free online magazine for connected, autonomous and electric car professionals. Sign up 4 Connected Car mag #ConnectedC\…" }, { "author_id": "5946022", "created_at": "2019-12-29T19:04:28.000Z", "id": "1211362363351261184", "text": "..." }, ...

我嘗試了很多不同的代碼來將 JSON 文件轉換為單個 csv,但是當我嘗試使用任何給定的代碼時,我得到了以下任一錯誤代碼:

JSONDecodeError:額外數據:第 2 行第 1 列(字符 4)JSONDecodeError:期望用雙引號括起來的屬性名稱:第 2 行第 1 列(字符 2)ValueError:尾隨數據

當我使用pandas 將文件轉換為csv 時,我在使用pd.read_json() 時已經遇到了問題。 盡管我嘗試設置 lines=True,但我什至無法在 Python 中將 JSON 文件作為 Dataframe 輸入。

我對 Python 和整體編程非常陌生,因此非常感謝任何幫助。

您的 json 無效, 200不應該在開頭。 我會修改正在編寫該部分的腳本。 如果你pd.read_json(<json_variable_name>['data'])你可以在pd.read_json(<json_variable_name>['data'])它,但最簡單的方法是使用下面的函數:

import json
import csv
from typing import Dict, List, Union

# standard function I use for reading json files
def read_json(path: str) -> Union[Dict, List]:
    with open(path, 'r') as file:
        return json.load(file)

# standard function I use for writing list of dicts to csv
def write_csv(data: List[Dict], path: str) -> None:
    with open(path, 'w') as file:
        fields = set().union(*data)
        writer = csv.DictWriter(file, fieldnames=fields, lineterminator='\n')
        writer.writeheader()
        writer.writerows(data)

json_data = read_json('your_file.json')

# write the json data (dictionary) to a csv
write_csv(json_data['data'], 'data.csv')

注意json_data['data']的使用, ['data']部分訪問 json 響應的"data"鍵值

暫無
暫無

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

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