[英]Python csv to json using pandas - csv columns to nested json
Python 3.8.5 與 Pandas 1.1.3
我有一個 csv 文件,其中包含以下列:名稱、城市、state 和郵政編碼。 我需要將城市、state 和 object 中的郵政編碼列值轉換為 json,稱為住宅。
例如:
CSV 文件
Name City State Zipcode
John Doe Akron OH 44140
我需要 JSON output 的結構如下:
{
"name": "John Doe",
"residence" :
{
"city": "Akron",
"state": "OH",
"zipcode": 44140
}
}
我目前使用 Pandas 使用以下代碼將 csv 轉換為 json:
import pandas as pd
csv_file = pd.DataFrame(pd.read_csv("data.csv", sep = ",", header = 0, index_col = False))
csv_file.to_json("data.json", orient = "records", lines = True, date_format = "iso", double_precision = 10, force_ascii = True, date_unit = "ms", default_handler = None)
按原樣,這只是將每一列轉換為 json 鍵:值。
如何添加到此代碼以實現我想要的 output?
IIUC 嘗試首先按行創建嵌套的 object,然后創建 JSON:
import pandas as pd
csv_file = pd.read_csv("data.csv", sep=",",
header=0, index_col=False)
# Create Nested dict (Object)
csv_file['Residence'] = csv_file[['City', 'State', 'Zipcode']].apply(
lambda s: s.to_dict(), axis=1
)
# Write out Name and Residence Only
csv_file[['Name', 'Residence']].to_json("data.json", orient="records",
lines=True, date_format="iso",
double_precision=10, force_ascii=True,
date_unit="ms", default_handler=None)
數據.csv
Name,City,State,Zipcode John Doe,Akron,OH,44140 Jane Smith,Los Angeles,California,90005
數據.json
{"Name":"John Doe","Residence":{"City":"Akron","State":"OH","Zipcode":44140}} {"Name":"Jane Smith","Residence":{"City":"Los Angeles","State":"California","Zipcode":90005}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.