2017-05-03 13 views
0

私は以下のコードを試していますが、属性エラーが表示されました。私はPythonには新しく、このエラーを修正するために私が何ができるかを知っていただければ幸いです。あなたが行ったように中括弧を使用してPythonでPython:AttributeError: 'set'オブジェクトに属性 'format'がありません

with open(csv_file_path,'wb+') as fout: 
      csv_file = csv.writer(fout) 
      csv_file.writerow(list(column_names)) 
      with open(json_file_path) as fin: 
       for line in fin: 
        line_contents = json.loads(line) 
        csv_file.writerow(get_row(line_contents,column_names)) 

    read_and_write_file(json_file,csv_file,column_names) 

    if isinstance(line_value,unicode): 
       row.append({0}.format(line_value.encode('utf-8'))) 

Traceback (most recent call last): 
    File "Json_convert.py", line 89, in <module> 
    read_and_write_file(json_file, csv_file, column_names) 
    File "Json_convert.py", line 19, in read_and_write_file 
    csv_file.writerow(get_row(line_contents,column_names)) 
    File "Json_convert.py", line 62, in get_row 
    row.append({0}.format(line_value.encode('utf-8'))) 
AttributeError: 'set' object has no attribute 'format' 
+0

'row.append 'UTF-8' にそれをフォーマットすることができます( – kuro

+3

)このような単一項目の書式は必要ありません... row.append(line_value.encode( 'utf-8')) 8 '))) –

+0

ありがとうございます。私は今それが動作すると思います。 –

答えて

0

は、(あなたが{0}を書いたところ)セットとして知られている作り付けのオブジェクトを作成するためです。集合は(数学のように)ユニークな要素の順序付けられていないコレクションであり、フォーマットできないため、メソッドがないため、フォーマットメソッドをセットで呼び出そうとしたときに属性エラーが発生します。{0}.format(..)

あなたは意味している可能性があります

row.append("{0}".format(line_value.encode('utf-8')))

をこれはformatメソッドを持っている文字列を作成しますので、これは動作するはずです。

-1

使用タイプカースト、

row.append({0}.format(str(line_value).encode('utf-8'))) 

であなたの次の行、

row.append({0}.format(line_value.encode('utf-8'))) 

を交換し、今はそれがあるべき

+0

ありがとう、私は括弧が足りない上記のソリューションを試してみました。 –

関連する問題