Сортировать с пробелами файл JSON из блока данных в Pandas - PullRequest
0 голосов
/ 08 марта 2019

Я экспортирую фрейм данных в файл JSON, используя следующие строки кода:

with open('example.json', 'w') as f:
for row in df3.iterrows():
    row[1].to_json(f, orient=None, lines=False)
    f.write("\n") 

И он возвращает такой файл:

{"age":20,"city":"Burdinne","email":"enim@risus.org","name":"Zorita","phone":4565434645.0,"postal_code":42680.0,"regDate":"2015-06-14T12:12:00-07:00"}
{"age":22,"city":"Bharatpur","email":"purus.mauris.a@odiosagittis.ca","name":"Mariam","phone":null,"postal_code":null,"regDate":"2016-10-14T18:52:48-07:00"}
{"age":28,"city":"Neerheylissem","email":"Nam@enimEtiam.org","name":"Malik","phone":null,"postal_code":null,"regDate":"2016-09-20T18:06:55-07:00"}
{"age":24,"city":"San Fratello","email":"sapien@Nullamlobortis.ca","name":"Claire","phone":null,"postal_code":null,"regDate":"2016-12-29T09:49:13-08:00"}
{"age":30,"city":"La Cruz","email":"tempor@purusmaurisa.edu","name":"Hilel","phone":null,"postal_code":null,"regDate":"2016-07-09T12:03:31-07:00"}

Однако я быкак этот файл JSON, который будет табулирован следующим образом:

[
  {
    "name": "Zorita",
    "email": "enim@risus.org",
    "regDate": "2015-06-14T12:12:00-07:00",
    "city": "Burdinne",
    "age": 20,
    "postal_code":42680,
    "phone": 4565434645
  },
  {
    "name": "Mariam",
    "email": "purus.mauris.a@odiosagittis.ca",
    "regDate": "2016-10-14T18:52:48-07:00",
    "city": "Bharatpur",
    "age": 22
  },
  {
    "name": "Malik",
    "email": "Nam@enimEtiam.org",
    "regDate": "2016-09-20T18:06:55-07:00",
    "city": "Neerheylissem",
    "age": 28
  },
  {
    "name": "Claire",
    "email": "sapien@Nullamlobortis.ca",
    "regDate": "2016-12-29T09:49:13-08:00",
    "city": "San Fratello",
    "age": 24
  },
  {
    "name": "Hilel",
    "email": "tempor@purusmaurisa.edu",
    "regDate": "2016-07-09T12:03:31-07:00",
    "city": "La Cruz",
    "age": 30
  }
]

Как я могу это сделать?В моем коде я пытаюсь поставить разрыв строки с помощью "\ n" , но, видимо, я делаю это неправильно

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Вы можете преобразовать столбец в список и записать в файл по json.dump с параметром indent и при необходимости sort_keys=True для симпатичного json:

import json

with open("example.json", "w") as f:
    json.dump(df[1].tolist(), f, indent=4, sort_keys=True)

Образец :

d = [
  {
    "name": "Zorita",
    "email": "enim@risus.org",
    "regDate": "2015-06-14T12:12:00-07:00",
    "city": "Burdinne",
    "age": 20,
    "postal_code":42680,
    "phone": 4565434645
  },
  {
    "name": "Mariam",
    "email": "purus.mauris.a@odiosagittis.ca",
    "regDate": "2016-10-14T18:52:48-07:00",
    "city": "Bharatpur",
    "age": 22
  }

]

df = pd.DataFrame({1: d})
#print (df)

import json

with open("example.json", "w") as f:
    json.dump(df[1].tolist(), f, indent=4, sort_keys=True)

[
    {
        "age": 20,
        "city": "Burdinne",
        "email": "enim@risus.org",
        "name": "Zorita",
        "phone": 4565434645,
        "postal_code": 42680,
        "regDate": "2015-06-14T12:12:00-07:00"
    },
    {
        "age": 22,
        "city": "Bharatpur",
        "email": "purus.mauris.a@odiosagittis.ca",
        "name": "Mariam",
        "regDate": "2016-10-14T18:52:48-07:00"
    }
]
1 голос
/ 08 марта 2019

Попробуйте код ниже:

final_list = list()
for row in df3.iterrows():
    final_list.append(row[1].to_dict(orient=None))

with open('example.json', 'w') as f:
    f.write(json.dumps(final_list, indent=4))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...