繁体   English   中英

在python中将CSV转换为JSON时如何控制节点名称

[英]How to control node names when converting CSV to JSON in python

我在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM