2017-10-19 12 views
0

私はtwitterスクラップから作られたjsonを持っています。つぶやきの中には、引用符の前にバックスラッシュがあるものがあります。これは、私のjsonのキーではなく、ツイートのメッセージ内でのみ表示されます。 私はバックスラッシュを含むごみの多くを削除します以下のコードを持っていますが、新しく保存されたJSONはまだ戻ってはpython3:pandasのto_jsonが、キー値のいずれかの二重引用符にを追加しています

を削減している私は最近、問題はなく、to_jsonを持つ、正規表現ではないことがわかりました。 pandasはregexを通じてバックスラッシュを削除してから、to_jsonを使用するときにバックスラッシュを再適用します。私はこれを解決する方法はありますか?私の目標は、元の形式でJSONを読んで、不要な混乱を削除し、それがまっすぐメモ帳で開いて新しいJSON(から

import pandas as pd 

data = pd.DataFrame(pd.read_json(filename, orient=columnName,encoding="utf-8"),columns=columnName) 
data['full_text'] = data['full_text'].replace('^@ABC(\\u2019s)*[ ,\n]*', '', regex=True) 
data['full_text'] = data['full_text'].replace('(\\u2019)', "'", regex=True) 
data['full_text'] = data['full_text'].apply(lambda x: re.sub(r'\\(?=\")','"',x)) 
print(data['full_text'].loc[data['id_str'] == 79104606646138400]) 
data.to_json('new_abc_short.json',orient='records') 

たとえば、キーと値のペアで来たとまったく同じ形式で新しいJSONにそれを再保存することです++ ):キーfull_textで、私は心配の部分はそれの価値があるように

....,"full_text":"How can you "accidentally close" my account",.... 

ないすべての二重引用符は、問題があります:私は期待したもの

....,"full_text":"How can you \"accidentally close\" my account",.... 

。それは問題で、私はfull_textがdtypeオブジェクトであることを印刷物から気付いた。

答えて

0

"full_text":"How can you "accidentally close" my account"は有効なJSONではない。 \には、文字列内の引用符をエスケープして、JSON構造を決定するのではなく、これらの引用符を文字列に含めなければならないことをパーサーに伝えます。そのJSONを別のアプリケーションに読み込むと、合理的なJSONパーサーがあなたの引用符を削除します。

+0

aw :(大丈夫だと思います。 – user3120554

関連する問題