簡體   English   中英

如何在python的csv文件中處理json數據?

[英]how do i handle a json data in csv file in python?

我目前正在對kaggle的tmdb數據集進行數據分析項目(順便說一句,我是一個完整的菜鳥,請原諒我的無知),在數據集中我遇到了以下列(第二列):

體裁

[{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 14, "name": "Fantasy"}, {"id": 878, "name": "Science Fiction"}]
[{"id": 12, "name": "Adventure"}, {"id": 14, "name": "Fantasy"}, {"id": 28, "name": "Action"}]
[{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 80, "name": "Crime"}]
[{"id": 28, "name": "Action"}, {"id": 80, "name": "Crime"}, {"id": 18, "name": "Drama"}, {"id": 53, "name": "Thriller"}]
[{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 878, "name": "Science Fiction"}]
[{"id": 14, "name": "Fantasy"}, {"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}]
[{"id": 16, "name": "Animation"}, {"id": 10751, "name": "Family"}]

這里的流派是列名,此列每一行中的數據都包含在[]中

我想要做的是將其轉換為以下類型的fo列(分隔符可以是','以外的任何東西,因為它是CSV文件:-

genres
Action;Adventure;Fantasy;Fiction;
Adventure;Fantasy;Action;
Action;Adventure;Crime;
And so on...

這是我的代碼:-

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import csv

reviews = pd.read_csv("C:/Users/HP/Desktop/data science project/tmpd second attempt/2. prepared data/tmdb_5000_movies.csv")

print(reviews["genres"]);

PS:-這是我的第一個項目,所以真的不知道該如何處理

那不是一個csv文件。 這是一個json文件。 所以如果你改變

reviews = pd.read_csv("C:/Users/HP/Desktop/data science project/tmpd second attempt/2. prepared data/tmdb_5000_movies.csv")

reviews = pd.read_json("C:/Users/HP/Desktop/data science project/tmpd second attempt/2. prepared data/tmdb_5000_movies.csv")

它應該工作。

哦,您可能想將文件擴展名從.csv更改為.json

從op重新評論:

這段代碼適用於您的示例,有點hack,但最好的是我可以快速做到:

import ast
with open("untitled.csv") as fi:
    data=fi.readlines()
cleaned = []
for da in data:
    l = da.strip("[").strip('\n').strip(']').split(', {')
    for a in l:
        pre=''
        if not a.startswith("{"):
            pre='{'
        cleaned.append(ast.literal_eval(pre+a))
df = pd.DataFrame(cleaned)

暫無
暫無

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

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