如何在python中处理csv文件中的json数据?

如何在python中处理csv文件中的json数据?,python,json,python-3.x,csv,Python,Json,Python 3.x,Csv,我目前正在kaggle做一个关于数据分析的项目(顺便说一句,我是一个彻头彻尾的傻瓜,请原谅我的无知),我在数据集中遇到了以下列(第2列):-` 流派 [{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 14, "name": "Fantasy"}, {"id": 878, "name": "Science Fiction"}] [{"id": 12, "name": "Adventure"}, {"id":

我目前正在kaggle做一个关于数据分析的项目(顺便说一句,我是一个彻头彻尾的傻瓜,请原谅我的无知),我在数据集中遇到了以下列(第2列):-`

流派

[{"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"}]
此处“类型”是列名,此列每行中的数据都包含在[]中

我要做的是在下面的type 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")

它应该会起作用

哦,您可能需要将文件扩展名从
.csv
更改为
.json

op的重新评论:

这段代码适用于您的示例,有点像黑客,但我能做的最好的事情是:

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)

先生,我向您展示的只是csv文件中的一列,其余的列都是简单的列,填充了id、预算等数字值,但是这列不同,因为它包含json数据,我不知道如何将其转换为这种格式。好的,请看修改后的答案。哦,Paula是一个女性名字。Thnks ma'am(Sry代表“先生”)……我要试试看
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)