Это изображение показывает вывод, я пытаюсь получить У меня есть файл Json gz с парой записей, как показано ниже
data=
[{ "eventName" : "App Installed" , "ts" : 20190915002057 , "eventProps" : { "CT Source" : "Mobile" , "ct_app_version" : "1.3.93"} , "profile" : { "all_identities" : [ "3512631"] , "identity" : "3512631" , "platform" : "Android" , "phone" : 919945966964 , "name" : "SHIVAKUMAR B S"} , "deviceInfo" : { "osVersion" : "9" , "sdkVersion" : "30402" , "make" : "Xiaomi" , "model" : "Redmi Note 5 Pro" , "appVersion" : "1.3.93" , "browser" : "MobileApp" , "dpi" : 440 , "dimensions" : { "width" : 68 , "height" : 127 , "unit" : "mm"}}},
{ "eventName" : "App Installed" , "ts" : 20190915002818 , "eventProps" : { "CT Source" : "Mobile" , "ct_app_version" : "1.3.93"} , "profile" : { "all_identities" : [ "3497362"] , "identity" : "3497362" , "platform" : "Android" , "phone" : 919861231341 , "name" : "P K Sharma" , "push_token" : "fcm:f3hX8xbV5AU:APA91bETNmb4f77Z4qdPC3yDTXz5f3HwUlhkD0ppaxmPYb0puWwE7hOXwpg9nxN0ULZGxpItk3BTxP0sV7CT4zXN6j5BxXUyuBjfDXg7UDE3lRCiR-6Q677oRY8o6B2vITXlWLCbWsFw"} , "deviceInfo" : { "osVersion" : "7.1.1" , "sdkVersion" : "30402" , "make" : "motorola" , "model" : "Moto E (4) Plus" , "appVersion" : "1.3.93" , "browser" : "MobileApp" , "dpi" : 320 , "dimensions" : { "width" : 68 , "height" : 112 , "unit" : "mm"}}}]
это массив, и когда я импортирую его вданные, как указано выше, становятся списком с типом dict и размером 5 для каждой строки, а при расширении они становятся комбинацией ниже как
AS DICT
"eventProps" : { "CT Source" : "Mobile" , "ct_app_version" : "1.3.93"},
"profile" : { "all_identities" : [ "3497362"] , "identity" : "3497362" , "platform" : "Android" , "phone" : 919861231341 , "name" : "P K Sharma" , "push_token" : "fcm:f3hX8xbV5AU:APA91bETNmb4f77Z4qdPC3yDTXz5f3HwUlhkD0ppaxmPYb0puWwE7hOXwpg9nxN0ULZGxpItk3BTxP0sV7CT4zXN6j5BxXUyuBjfDXg7UDE3lRCiR-6Q677oRY8o6B2vITXlWLCbWsFw"}
"deviceInfo" : { "osVersion" : "7.1.1" , "sdkVersion" : "30402" , "make" : "motorola" , "model" : "Moto E (4) Plus" , "appVersion" : "1.3.93" , "browser" : "MobileApp" , "dpi" : 320 , "dimensions" : { "width" : 68 , "height" : 112 , "unit" : "mm"}}
как строка
"eventName" : "App Installed"
как значение INt
int "ts" : 20190915002057
как я могу сделать то же самое, напрямую импортируя файл .gz без передачистроки отдельно
Я попытался, как показано ниже, но он дает мне список с типом в виде строки, а не dict
import json;
import gzip
import pandas as pd
import numpy as np
from pandas.io.json import json_normalize
jsonfilename='App-Installed-20190913-0-0.json.gz'
with gzip.GzipFile(jsonfilename, 'r') as fin:
json_bytes = fin.read()
json_str = json_bytes.decode('utf-8')
json_str_replace=json_str.replace("}}}","}}}*,")
DataList= list(map(str.strip, json_str_replace.split('*,')))