首页 > 解决方案 > Python - 将 dict 对象解析为变量以记录到数据库

问题描述

我正在尝试学习 Python 数据类型,但我一直在dict解析。我有一个dict对象如下:

{'0': {'Group Name': 'e', 'Inputs': {'0': {'DataName': 'fasd', 'DataType': 'data2'}}}, '1': {'Group Name': 's', 'Inputs': {'0': {'DataName': 'd', 'DataType': 'data1'}}}, '2': {'Group Name': 'g', 'Inputs': {'0': {'DataName': 'h', 'DataType': 'data1'}}}}

但我无法将其解析为groupname和.datanamedatatype

我试过dictObj[iteratior]['Group Name']了,但我看到我们不能在dict对象中使用数字索引。所以我尝试dictObj['Group Name']了,但没有奏效。正确的方法应该是什么?

我也尝试过它转换其他对象类型,但它也没有工作。

dictform像上面的结构一样来自前端的 JSON。

icformkey是要记录在其中的数据库查询集。

for group in dictForm:

    if icformkey[iteration].level == 0:
        SingleQuery = icformkey[iteration]
        SingleQuery.name = group[str(iteration)]['Group Name']
        print("grup name", group[str(iteration)]['Group Name'])
        SingleQuery.full_clean()
        SingleQuery.save()
        print("group",  group)

    for input in group[str(iteration)]['Inputs']:
        if icformkey[iteration].level == 1:
            SingleQuery = icformkey[iteration]
            print("single query",SingleQuery)
            SingleQuery.name = input['DataName']
            SingleQuery.datatype = input['DataType']
            SingleQuery.full_clean()
            SingleQuery.save()

    iteration+=1
    output = {'result': True, 'error': 0}

return JsonResponse(output, safe=False)

标签: pythonarraysdictionaryobjectparsing

解决方案


dict有字符串作为键,因此您应该将数字索引转换为字符串:

dictObj['0']['Group Name'] # returns 'e'

要将整数索引转换为字符串,可以使用str如下:

a = 3 # 3
string_a = str(a) # '3'

# for your object
dictObj[str(0)]['Group Name']

推荐阅读