как удалить обратную косую черту из файла JSON - PullRequest
0 голосов
/ 28 августа 2018

Я хочу создать файл json, например:

{"946705035":4,"946706692":4 ...}

Я беру столбец, который содержит только метки времени Unix, и группирую их.

result = data['Last_Modified_Date_unixtimestamp_no_time'].value_counts()

In [21]: result.head()
Out[21]: 
1508284800    131
1508716800    106
1508371200    101
1508457600     99
1508630400     96
Name: Last_Modified_Date_unixtimestamp_no_time, dtype: int64

преобразовать в диктовку

result = result.to_dict()
result
'''
{1507161600: 1,
 1507852800: 1,
 1508198400: 64,
 1508284800: 131,
 ...
 1535155200: 1,
 1535241600: 1}
'''

import json
result = json.dumps(result)

with open('result.json', 'w') as fp:
    json.dump(result, fp, indent=4)

результат enter image description here это структура данных, которую я ожидал

{"946705035":4,"946706692":4}

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Самый простой способ решить вышеуказанную проблему - играть с json.dumps() и json.loads().

import json
result = json.dumps(result)

with open('result.json', 'w') as fp:
    json.loads(result, fp)
0 голосов
/ 28 августа 2018

Вы дважды выгружаете JSON, что приводит к экранированию кавычек во втором дампе. (После первого json.dumps результатом является только строка, поэтому вы просто снова выводите строку вместо dict)

import json
# result = json.dumps(result)

with open('result.json', 'w') as fp:
    json.dump(result, fp, indent=4)

Или удалите второй дамп:

import json
result = json.dumps(result)

with open('result.json', 'w') as fp:
    # json.dump(result, fp, indent=4)
    print(result, file=fp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...