2017-09-28 2 views
0

2つの値(1つの文字列と別の1つのJSON)があるファイルを処理しようとしています。 JSON値を処理しようとすると、上記のエラーが発生します。私が間違っているところで助けてもらえますか?私はPythonが初めてです。ここで が私のコードです:NameErrorを取得しています:名前 'json_load'が定義されていません

import json 
filename = 'li_attributes.txt' 
file_object = open(filename) 
for line in file_object: 
    split_line = line.split('\t') 
    try: 
      upc = split_line[0] 
      source_attributes =split_line[1] 
      x = json_load(source_attributes) 
    except ValueError as a: 
      pass 
      continue 

データは次のようになります。

072036712370 {"attr1":{"values":[{"value":"Generic"}]}, 
       "attr2":{"values":[{"value":"24 oz"}]}, 
       "attr3":{"values":[{"value":"ROASTED RED PEPPER WITH GARLIC PASTA SAUCE"}]}} 
+0

'li_attributes.txt'の形式は何ですか?タブ区切りファイルですか、それともJSONファイルですか? –

+1

それはjson.loads(...) –

+0

でなければなりません。あなたは 'json.load()'や 'json.loads()'の代わりに 'json_load()'を使うことができます。 – Sanket

答えて

0

"json_load" is not definedの誤差は機能json_loadがないことを意味します。しかし、あなたのコードには他にもいくつか問題があると思います。

まず、あなたのコードが現在書かれている方法で、独自のjson_load関数を定義する必要があります。

第2に、json_loadはすべきことは不明です。 JSONを解析している場合は、Python標準ライブラリjson.load関数を使用することをお勧めします。しかし、あなたのコードの読み方は、.txtというファイルをJSONオブジェクトにパースしようとしているようです。その場合は、{upc: data}の形式の入れ子になった辞書を作成する関数を定義することをお勧めします。

+0

あなたの答えをありがとう。私がしようとしているのは、このタブで区切られたテキストファイルを解析し、次のような平らなレコードを書くことです: UPC attr1 attr2 attr3 072036712370 attri1_value attr2_value attr3_value – Sundar

+0

これはjson_loadの代わりにjson.loadsだったはずです。私はそれを修正し、うまく動作します。ご協力いただきありがとうございます。 – Sundar

関連する問題