Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从JSON文件的csv/dataframe中提取对象?_Python_Json - Fatal编程技术网

Python 如何从JSON文件的csv/dataframe中提取对象?

Python 如何从JSON文件的csv/dataframe中提取对象?,python,json,Python,Json,我有一个csv,我把它变成了一个熊猫数据框,其中每一行由一个不同的JSON文件组成,每个JSON文件都有与其他文件完全相同的格式和对象,每一个都代表一个独特的事务,我想把这个数据框转换成一个数据框或excel文件,其中每一列代表JSON文件中的一个对象,每一行代表每个事务 JSON还包含数组,在这种情况下,我希望能够检索数组的每个元素。理想情况下,我希望能够从JSON文件中检索所有可能的对象,并将它们转换为列 行的简化版本为: { "source":{

我有一个csv,我把它变成了一个熊猫数据框,其中每一行由一个不同的JSON文件组成,每个JSON文件都有与其他文件完全相同的格式和对象,每一个都代表一个独特的事务,我想把这个数据框转换成一个数据框或excel文件,其中每一列代表JSON文件中的一个对象,每一行代表每个事务

JSON还包含数组,在这种情况下,我希望能够检索数组的每个元素。理想情况下,我希望能够从JSON文件中检索所有可能的对象,并将它们转换为列

行的简化版本为:

    {  
       "source":{  
          "analyze":true,
          "billing":{  
             "gender":null,
             "name":"xxxxx",
             "phones":[  
                {  
                   "area_code":"xxxxx",
                   "country_code":"xxxxx",
                   "number":"xxxxx",
                   "phone_type":"xxxxx"
                }
             ]
          },
          "created_at":"xxxxx",
          "customer":{  
             "address":{  
                "city":"xxxxx",
                "complement":"xxxxx",
                "country":"xxxxx",
                "neighborhood":"xxxxx",
                "number":"xxxxx",
                "state":"xxxxx",
                "street":"xxxxx",
                "zip_code":"xxxxx"
             },
             "date_of_birth":"xxxxx",
             "documents":[  
                {  
                   "document_type":"xxxxx",
                   "number":"xxxxx"
                }
             ],
             "email":"xxxxx",
             "gender":xxxxx,
             "name":"xxxxx",
             "number_of_previous_orders":xxxxx,
             "phones":[  
                {  
                   "area_code":"xxxxx",
                   "country_code":"xxxxx",
                   "number":"xxxxx",
                   "phone_type":"xxxxx"
                }
             ],
             "register_date":xxxxx,
             "register_id":"xxxxx"
          },
          "device":{  
             "ip":"xxxxx",
             "lat":"xxxxx",
             "lng":"xxxxx",
             "platform":xxxxx,
             "session_id":xxxxx
          }
    }
    }
还有我的python代码

import csv
import json
import pandas as pd
df = pd.read_csv(r"<name of csv file in which each row is a JSON file>")
我的预期输出的简化如下


您的意思是这样的输出,例如获取区域代码:

        A_col                                          area_code
0   {"source":{"analyze":true,"billing":{"gender":...   xxxxx
第一:

性别:xxxxx,先前订单数量:xxxxx,注册日期:xxxxx,平台:xxxxx,会话id:xxxxx,应双引号

获取json文档:

newjson = []
with open('./example.json', 'r') as f:
    for line in f:
        line = line.strip()
        newjson.append(line)
将其格式化为字符串:

jsonString = ''.join(newjson)
转换为python对象:

jsonData = json.loads(jsonString)
使用字典操作提取字段并转换为数据帧:

newDF = pd.DataFrame({"A_col": jsonString, "area_code": jsonData['source']['billing']['phones'][0]['area_code']}, index=[0])

您期望的输出究竟是什么?每行包含一个json文件是什么意思?您的意思是csv中的每一行都是有效的JSON字符串吗?瞧,这只是一个由新行分隔的有效JSON字符串组成的文本文件?嘿,谢谢你的回答!是的,这正是我的意思,数据框的第一列的每一行或excel/csv文件的A列中的每一个单元格都是上述格式的有效JSON字符串。我想知道是否有可能从这些JSON字符串中提取对象并将它们放在另一个数据帧中,我将编辑上面的文章。是的,这是可能的。你试过什么吗?你看过如何在Python中使用json吗?如果是,你遇到了什么困难?如果你给出一个输入的小例子,以及相应的输出是什么,通常会有所帮助。嘿,伙计,我已经编辑了我的帖子!我曾试图在stack overflow上查找此信息,但到目前为止没有任何效果,我将继续查找,如果您能将我推荐到某个地方,我将不胜感激。