看看你是否可以帮助我,我目前有一个 JSON 文件(该文件的内容实际上是 GET 请求的响应,所以我无法修改它):
[
{
"date": "1620157078",
"value": "{\"license_plate\": \"1111 AAA\", \"brand\": \"Peugeot\"}"
},
{
"date": "1620157080",
"value": "{\"license_plate\": \"2222 BBB\", \"brand\": \"Audi\"}"
}
]
我正在做的是将其转换为数据帧,以便能够通过以下方式使用它:
import json
import pandas as pd
with open('test.json', 'r') as f:
file = f.read()
file_json = json.loads(file)
df = pd.DataFrame(file_json)
df
数据框内容:
date value
0 1620157078 {"license_plate": "1111 AAA", "brand": "Peugeot"}
1 1620157080 {"license_plate": "2222 BBB", "brand": "Audi"}
我需要的是转换值字段的值,它是更多列中的字符串,最终得到如下所示的值:
date license_plate brand
0 1620157078 1111 AAA Peugeot
1 1620157080 2222 BBB Audi
我希望你能帮助我,我几乎一整天都在尝试进行修改,但我已经能够了。提前致谢。
最佳答案
内置和(Pandas 上游)解决方案包括使用 list comprehension 重新创建 file_json
的字典。和 dictionary unpacking .
>>> from ast import literal_eval
>>> file_json_2 = [{'date': d['date'], **literal_eval(d['value'])} for d in file_json]
然后,就像你已经做的那样
>>> pd.DataFrame(file_json_2)
date license_plate brand
0 1620157078 1111 AAA Peugeot
1 1620157080 2222 BBB Audi
关于Python-将DataFrame中的列值转换为不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67392150/