Python ValueError:字典更新序列元素#13的长度为1;2是必需的

Python ValueError:字典更新序列元素#13的长度为1;2是必需的,python,dictionary,Python,Dictionary,我得到以下错误: ValueError Traceback (most recent call last) <ipython-input-19-ec485c9b9711> in <module> 31 except Exception as e: 32 print(e) ---> 33 raise e 34 print(i)

我得到以下错误:

ValueError                                Traceback (most recent call last)
<ipython-input-19-ec485c9b9711> in <module>
     31     except Exception as e:
     32         print(e)
---> 33         raise e
     34     print(i)
     35     i = i+1

<ipython-input-19-ec485c9b9711> in <module>
     21 #                 cc = dict(x.split(':') for x in c.split(','))
     22                 c = '"'.join(c)
---> 23                 cc = dict(x.split(':') for x in c.split(','))
     24                 df_temp = pd.DataFrame(cc.items())
     25                 df_temp = df_temp.replace('"','',regex=True)

ValueError: dictionary update sequence element #13 has length 1; 2 is required
ValueError回溯(最近一次调用)
在里面
31除e类例外情况外:
32打印(e)
--->33提高e
34印刷品(一)
35I=i+1
在里面
21#cc=dict(x.split(':'),用于c.split(',')中的x)
22 c=“”。连接(c)
--->23 cc=c.split(',')中x的dict(x.split(':'))
24 df_temp=pd.DataFrame(cc.items())
25 df_temp=df_temp.replace(“,”,regex=True)
ValueError:字典更新序列元素#13的长度为1;2是必需的
下面是抛出错误的块。我在这里查看了一些帖子,但它们是特定于代码的。不确定是输入问题还是代码问题

df_final = pd.DataFrame()
i=1
for file in files:
    try:
        s3 = session.resource('s3')
        key = file
        obj = s3.Object('my-bucket',key)
        n = obj.get()['Body'].read()
        gzipfile = BytesIO(n)
        gzipfile = gzip.GzipFile(fileobj=gzipfile)
        content = gzipfile.read()
        content = content.decode('utf-8')
        if len(content) > 0:
            content = re.findall(r"(?<=\{)(.*?)(?=\})",content)
            for c in content:
                c= c.split('"')
                for index,val in enumerate(c):
                    if index%2 == 1:
                        c[index] = val.replace(':','_').replace(',','_')
                c = '"'.join(c)
                cc = dict(x.split(':') for x in c.split(','))
                df_temp = pd.DataFrame(cc.items())
                df_temp = df_temp.replace('"','',regex=True)
                df_temp = df_temp.T
                new_header = df_temp.iloc[0] #grab the first row for the header
                df_temp = df_temp[1:] #take the data less the header row
                df_temp.columns = new_header
                df_final = pd.concat([df_final, df_temp])
    except Exception as e:
        print(e)
        raise e
    print(i)
    i = i+1
df_final=pd.DataFrame()
i=1
对于文件中的文件:
尝试:
s3=会话资源('s3')
密钥=文件
obj=s3.Object('my-bucket',key)
n=obj.get()['Body'].read()
gzipfile=BytesIO(n)
gzipfile=gzip.gzipfile(fileobj=gzipfile)
content=gzipfile.read()
内容=内容。解码('utf-8')
如果len(内容)>0:

content=re.findall(r)(?我猜您的数据格式不正确。我猜在某个时候,
x.split(':'))
正在生成一个只包含一个元素的列表,因为在
x
中没有
,字符串被拆分。这导致在根据此数据创建字典的过程中,当需要一对值(用于“键”和“值”)时,传递一个值


我建议您启动调试器,并在遇到此错误时让调试器停止,或者找出它发生的时间,并到达即将发生错误的位置。然后查看调试器显示中正在或即将处理的数据,看看是否可以找到导致此错误的错误数据正在处理此问题。在运行引发异常的行之前,您可能必须对数据运行准备过程来修复此问题和其他类似问题。

是的,我认为这是可能的,因为我没有处理数据的接收,看起来数据文件有问题。是否可以忽略此问题并继续扫描其他文件从循环?在没有看到输入的情况下无法判断问题