我在python中使用一个简单的csv到json脚本,并且已经使用此命令成功将CSV转换为JSON ...

csvFilePath = ("x.csv")

# Read the CSV and add the data to a dictionary
data = {}
with open(csvFilePath) as csvFile:
    csvReader = csv.DictReader(csvFile)
    for csvRow in csvReader:
        objectid = csvRow["objectid"]
        data[objectid] = csvRow
        d = csvrow

# Converts dictionary to JSON list
json_string = json.dumps([data], indent = 4)


生成的JSON看起来像这样...

[
{
    "15494": {
        "status": "Open",
        "site_name": "Healthpromed Municipality of Vieques",
        "objectid": "15494",
        "utilities": "No",
        "site_dashboard_surrogate_key": "BPS-H80-019569",
        "supplies": "No",
        "structural": "No",
        "staff": "No"
    },
    "1": {
        "status": "Closed",
        "site_name": "PUBLIC HEALTH AND HUMAN SERVICES, MONTANA DEPARTMENT OF",
        "objectid": "1",
        "utilities": "No",
        "site_dashboard_surrogate_key": "010478A2-14EF-4B7B-84A0-2618F311D82F",
        "supplies": "No",
        "structural": "No",
        "staff": "No"
    }
}]


我需要更改由“ objectid”设置为“ attributes”的节点名称(即“ 15494”,“ 1”)的帮助

我想要的代码应如下所示:

[
{
    "attributes": {
        "status": "Open",
        "site_name": "Healthpromed Municipality of Vieques",
        "objectid": "15494",
        "utilities": "No",
        "site_dashboard_surrogate_key": "BPS-H80-019569",
        "supplies": "No",
        "structural": "No",
        "staff": "No"
    },
    "attributes": {
        "status": "Closed",
        "site_name": "PUBLIC HEALTH AND HUMAN SERVICES, MONTANA DEPARTMENT OF",
        "objectid": "1",
        "utilities": "No",
        "site_dashboard_surrogate_key": "010478A2-14EF-4B7B-84A0-2618F311D82F",
        "supplies": "No",
        "structural": "No",
        "staff": "No"
    }
}]


有任何想法吗?我机智地在这里结束。我试图在for循环中将objectid = csvRow [“ objectid”]替换为[“ attributes”],但它只会覆盖第一个条目。

最佳答案

未经测试,但我想这是根据ArcGIS REST API文档所需要的。希望能对您有所帮助:)

csvFilePath = ("x.csv")

# Read the CSV and add the data to a dictionary
data = [] # make it a list
object = {} # initialize a dictionary
with open(csvFilePath) as csvFile:
    csvReader = csv.DictReader(csvFile)
    for csvRow in csvReader:
        object['attributes'] = csvRow["objectid"] # create dictionary
        data.append(dict(object)); # append every dictionary to list
        d = csvrow

# Converts dictionary to JSON list
json_string = json.dumps(data, indent = 4) # make json dump your list of dictionary

关于python - 在python中将CSV转换为JSON时如何控制节点名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56794920/

10-16 01:42
查看更多