OpenaiのAPI、gpt-4-turbo-previewの出力を辞書方に変換してx_pathに代入する方法を教えて下さい。
Q&A
Closed
解決したいこと
ここに解決したい内容を記載してください。
print(completion.choices[0].message)の出力結果が、
ChatCompletionMessage(content='```python\n{\n"//select[@name=\'your-req\']": True,\n
"//textarea[@name=\'your-msg\']": \'詳細を入力します\',\n
"//input[@name=\'your-company\']": \'株式会社おか\',\n
"//input[@name=\'your-name\']": \'山田太郎\',\n
"//input[@name=\'your-furigana\']": \'やまだたろう\',\n
"//input[@name=\'your-post\']": \'部長\',\n
"//input[@name=\'your-tel\']": \'0334909999\',\n
"//input[@name=\'your-mail\']": \'xxx@gmail.com\',\n
"//select[@name=\'your-que01\']": True,\n
"//textarea[@name=\'your-que01-etc\']": \'その他の理由\',\n
"//select[@name=\'your-que02\']": True,\n
"//textarea[@name=\'your-que02-etc\']": \'その他の理由\',\n
"//input[@name=\'agreement\']": True,\n
"//button[@id=\'mhFormConfirm\']": \'click\'\n}\n```', role='assistant', function_call=None, tool_calls=None)
例)
Chatgptを活用して、自動でHTMLを解析する仕組みを作成しています。
発生している問題・エラー
---------------------------------------------------------------------------
JSONDecodeError Traceback (most recent call last)
Cell In[220], line 6
3 content_string = completion.choices[0].message.content
5 # JSON文字列をPythonの辞書に変換
----> 6 x_path = json.loads(content_string)
8 # 変換された辞書を表示
9 print(x_path)
File ~/miniforge3/lib/python3.10/json/__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
341 s = s.decode(detect_encoding(s), 'surrogatepass')
343 if (cls is None and object_hook is None and
344 parse_int is None and parse_float is None and
345 parse_constant is None and object_pairs_hook is None and not kw):
--> 346 return _default_decoder.decode(s)
347 if cls is None:
348 cls = JSONDecoder
File ~/miniforge3/lib/python3.10/json/decoder.py:337, in JSONDecoder.decode(self, s, _w)
332 def decode(self, s, _w=WHITESPACE.match):
333 """Return the Python representation of ``s`` (a ``str`` instance
334 containing a JSON document).
335
336 """
--> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
338 end = _w(s, end).end()
339 if end != len(s):
File ~/miniforge3/lib/python3.10/json/decoder.py:355, in JSONDecoder.raw_decode(self, s, idx)
353 obj, end = self.scan_once(s, idx)
354 except StopIteration as err:
--> 355 raise JSONDecodeError("Expecting value", s, err.value) from None
356 return obj, end
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
該当するソースコード
Python
例)
import json
content_string = completion.choices[0].message.content
x_path = json.loads(content_string)
print(x_path)
自分で試したこと
データの型などを調べたりしましたが、最適な解が出てきません。
分かる方、教えて下さい。
0