当某些值为空时,如何确定JSON文件中多个字典值的数据类型

cedebl8k  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(133)

数据是JSON文件中的一长串字典。每个字典具有相同的键,但具有多种类型的不同值,有时这些值为null。我需要知道每个值的类型,这样我就可以在其他地方初始化适当的变量。
数据的示例如下所示:

[{"Name": null, "Age": 23, "Wage": 16.5},
{"Name": "jason", "Age": null, "Wage": 22.5},
{"Name": "blake", "Age": null, "Wage": 23.8},
{"Name": null, "Age": 26, "Wage": null}]

字符串
我试图得到每个的结果类型,它是<string, int, float>
由于JSON通常可以包含100,000多个不同的元素,而不是示例中的4个元素,因此我不确定是否有必要进行迭代,直到确定所有类型,或者是否有更有效的方法。我目前正在使用Python和C++。

laawzig2

laawzig21#

因此,要在python中使用JSON,您需要导入json库,您可以将字符串转换为json,这将自动处理数据类型转换。如果你正在使用类似requests库的东西来请求你的数据,你可以使用.json()方法,就像下面链接中演示的那样。

result = json.loads('{"Name": null, "Age": 23, "Wage": 16.5}')
print(result)

# {'Name': None, 'Age': 23, 'Wage': 16.5}

字符串
https://www.geeksforgeeks.org/response-json-python-requests/#
在python中,你可以使用内置的方法type()来确定数据类型。你可以在下面找到所有内置的数据类型。

print(type('example'))

# <class 'str'>


https://www.w3schools.com/python/python_datatypes.asp

d7v8vwbk

d7v8vwbk2#

我一直在用Pandas直到它不起作用。

data = [{"Name": None, "Age": 23, "Wage": 16.5},
        {"Name": "jason", "Age": None, "Wage": 22.5},
        {"Name": "blake", "Age": None, "Wage": 23.8},
        {"Name": None, "Age": 26, "Wage": None}]

import pandas as pd

df = pd.DataFrame(data)
print(df.dtypes)

> Name     object  
> Age     float64  
> Wage    float64  
> dtype: object

字符串
或者你可以使用polars,这将返回

[Utf8, Int64, Float64]


100,000行应该能够在这些工具中很容易地处理。
您可能希望使用库的read函数读取文件,而不是读取JSON到python字典列表。试试看

import polars as pl

df = pl.read_json("your_file.json")

print(df.dtypes)


如果你使用的是换行符分隔的JSON,那么你可以做一个延迟读取,这应该是(?))避免大文件的任何内存问题。

pl.scan_ndjson("your_file.json").dtypes

相关问题