Python 如何使用np.savetxt(带格式化程序)并发生错误?

Python 如何使用np.savetxt(带格式化程序)并发生错误?,python,pandas,numpy,Python,Pandas,Numpy,这是我的代码,它将作为数据帧输出提供给您。我需要在指定的格式化程序中写入value列的所有数据,以便使用savtxt方法中的格式化程序功能将其转换为固定长度的输出。请帮助我解决这个问题 import json import pandas as pd import numpy as np class Decoder(json.JSONDecoder): def decode(self, s): result = super(Decoder, self).decode(s)

这是我的代码,它将作为数据帧输出提供给您。我需要在指定的格式化程序中写入value列的所有数据,以便使用savtxt方法中的格式化程序功能将其转换为固定长度的输出。请帮助我解决这个问题

import json
import pandas as pd
import numpy as np
class Decoder(json.JSONDecoder):

    def decode(self, s):
        result = super(Decoder, self).decode(s)
        return self._decode(result)

    def _decode(self, o):
        if isinstance(o, str):
            try:
                return int(o)
            except ValueError:
                try:
                    return float(o)
                except ValueError:
                    return o
        elif isinstance(o, dict):
            return {k: self._decode(v) for k, v in o.items()}
        elif isinstance(o, list):
            return [self._decode(v) for v in o]
        else:
            return o

with open('ouput_data.json') as f:
    data=json.load(f,cls=Decoder)
#print(data)
list=[]
list=(data['data'])
df = pd.DataFrame(list,columns=['id','value'])
new_df = df.set_index('id')
new_df1=new_df.reindex(np.arange(1, 14)).fillna(' ')
print(new_df1)


new_df1.shape
#print(new_df1)


# In[67]:


# Specifying a formatter to convert to fixed length output
fmt = '%2s%2s%4s%1s%10s%8s%5s%1s%3s%30s%18s%2s%30s'


# In[68]:


# Remove NaNs
#in_df.fillna(' ',inplace = True)


# In[69]:

#print(in_df)
# Writing Output
filename=((data['data'])[0]['value']+".txt")
np.savetxt(filename,new_df1.values,fmt=fmt, delimiter='')
print("Done")
获取错误消息,如

Traceback (most recent call last):
  File "\\10.212.30.30\Share Folder\sriram\ile_3072\DataFrame_3072.py", line 61, in <module>
    np.savetxt(filename,new_df1.values,fmt=fmt, delimiter='')
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\numpy\lib\npyio.py", line 1352, in savetxt
    raise error
ValueError: fmt has wrong number of % formats:  %2s%2s%4s%1s%10s%8s%5s%1s%3s%30s%18s%2s%30s

fmt
中的
%格式的数量必须与正在保存的数组中的列数匹配。有人帮我解决这个问题吗!!!!告诉我们一些关于
new\u df1.values
,您正试图编写的数组的信息。我不明白!!!请你详细说明一下。告诉我我必须在代码中编辑什么见问题现在我添加了新的_df1数据帧输出将如下所示
id      value
  1            whats up
  2                what
  3                    
  4                    
  5                  HI
  6                    
  7                    
  8                    
  9                    
 10                    
 11                    
 12                    
 13